http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56265
--- Comment #8 from Jan Hubicka <hubicka at ucw dot cz> 2013-02-19 21:09:54 UTC --- > Hi, the patch seems to work well for Mozilla. There are two issues I noticed while testing it 1) we now enable-checking ICE on cgraph_mark_address_taken when compiling Mozilla with FDO. It is independent problem I was looking into for good part of day today. In fact we need to do similar excercise when this happen, but I wil handle this incrementally. It is WHOPR only bug. 2) The warning about calling a non-function surprisingly triggers few times during Mozilla. The values are constants: <integer_cst 0x7f1ef4a69c20 type <pointer_type 0x7f1f05d0e9d8 hb_destroy_func_t> constant 0> <integer_cst 0x7f204342bb00 type <pointer_type 0x7f1fee1d9a80> constant 33> <integer_cst 0x7f204342ba40 type <pointer_type 0x7f1fee1d9a80> constant 81> <integer_cst 0x7f1ffcb795a0 type <pointer_type 0x7f1fea0a4a80> constant 113> <integer_cst 0x7f1ffcb795a0 type <pointer_type 0x7f1fea0a4a80> constant 113> <integer_cst 0x7f1ffe6bca00 type <pointer_type 0x7f1fea0a4a80> constant 121> <integer_cst 0x7f1ffe6bca00 type <pointer_type 0x7f1fea0a4a80> constant 121> <integer_cst 0x7f204342baa0 type <pointer_type 0x7f1fee1d9930> constant 49> <integer_cst 0x7f1ef4a69c20 type <pointer_type 0x7f1f05d0e9d8 hb_destroy_func_t> constant 0> <integer_cst 0x7f1fdc69e8e0 type <pointer_type 0x7f1fd938ad20> constant 0> <integer_cst 0x7f1fdc69e8e0 type <pointer_type 0x7f1fd938ad20> constant 0> <integer_cst 0x7f202b5d5160 type <pointer_type 0x7f1ff919fc78 JSErrorCallback> constant 0> <integer_cst 0x7f1ffe6bca00 type <pointer_type 0x7f1fea0a4a80> constant 121> <integer_cst 0x7f1ffe6bca00 type <pointer_type 0x7f1fea0a4a80> constant 121> <integer_cst 0x7f1ffcb795a0 type <pointer_type 0x7f1fea0a4a80> constant 113> <integer_cst 0x7f1ffcb795a0 type <pointer_type 0x7f1fea0a4a80> constant 113> <integer_cst 0x7f202b5d5160 type <pointer_type 0x7f1ff919fc78 JSErrorCallback> constant 0> <integer_cst 0x7f204342b940 type <pointer_type 0x7f1fee1d9930> constant 97> <integer_cst 0x7f1fba8e12c0 type <pointer_type 0x7f20353fc540> constant 25> <integer_cst 0x7f1fba8e1680 type <pointer_type 0x7f20353fc540> constant 33> <integer_cst 0x7f1ef4a69c20 type <pointer_type 0x7f1f05d0e9d8 hb_destroy_func_t> constant 0> <integer_cst 0x7f1f180634e0 type <pointer_type 0x7f1edda427e0 LookupGenericOp> constant 0> <integer_cst 0x7f1fb28978e0 type <pointer_type 0x7f207af33c78 nsMallocSizeOfFun> constant 0> <integer_cst 0x7f1fb28978e0 type <pointer_type 0x7f207af33c78 nsMallocSizeOfFun> constant 0> <integer_cst 0x7f1fa8ab4780 type <pointer_type 0x7f2078d86bd0 InitDataFunc> constant 0> <integer_cst 0x7f204e3d0880 type <pointer_type 0x7f1fee180540> constant 201> <integer_cst 0x7f1fbafd5a60 type <pointer_type 0x7f1ef3fc9498> constant 0> <integer_cst 0x7f1fe63de860 type <pointer_type 0x7f205716f9d8 destroyOp> constant 0> <integer_cst 0x7f1fe63de860 type <pointer_type 0x7f205716f9d8 destroyOp> constant 0> <integer_cst 0x7f1ef4a69c20 type <pointer_type 0x7f1f05d0e9d8 hb_destroy_func_t> constant 0> <integer_cst 0x7f1ef4a69c20 type <pointer_type 0x7f1f05d0e9d8 hb_destroy_func_t> constant 0> <integer_cst 0x7f1ef4a69c20 type <pointer_type 0x7f1f05d0e9d8 hb_destroy_func_t> constant 0> <integer_cst 0x7f1ef4a69c20 type <pointer_type 0x7f1f05d0e9d8 hb_destroy_func_t> constant 0> <integer_cst 0x7f20471da2c0 type <pointer_type 0x7f1fee1d9000> constant 161> Martin, for 4.9 we can probably turn call to NULL into builtin_trap or builtin_unreachable (not sure if the second is fine, but it would result in better code). I wonder however from where the non-NULL constants are comming? Isn't it some bug in ipa-prop that picks complete garbage? That may be possible wrong code issue... I will commit patch tomorrow morning. Honza