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