https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61144
--- Comment #24 from Rich Felker <bugdal at aerifal dot cx> --- On Wed, Jul 02, 2014 at 12:22:40PM +0000, patrick at parcs dot ath.cx wrote: > It looks like this bug has been recently fixed in the trunk (no testsuite > addition however). I'm not sure what its status is on the release branches, > though. Per discussion on gcc-patches, the issue for this exact test case went away due to related changes not explicitly aimed at fixing this bug. However, if dummy is const-qualified, the bug supposedly remains. I have not yet tested with trunk to confirm this; I can do that if necessary. Here is the new test case: static const int dummy = 0; extern const int foo __attribute__((__weak__, __alias__("dummy"))); int bar() { if (foo) return 1; return 0; } Even with the const qualifier on both dummy and foo, foo should not be considered for constant folding because it's replaceable by alternate definitions which may provide different values.