------- Comment #4 from kevin at koconnor dot net 2010-03-28 14:43 ------- This problem has returned. The test case above no longer causes the problem - but simply changing the test case to also assign a value to the variable shows the problem. This is with gcc from svn (r157452).
New test case: ============================================================ cat > file1.c << EOF struct s1_s { int v; }; struct s1_s g1; void __attribute__((externally_visible)) func1() { struct s1_s *l1 = &g1; l1->v = 0; } EOF cat > file2.c << EOF extern struct s1_s g1; void func2() { &g1; } EOF cc -O -g -fwhole-program -combine -c file1.c file2.c ============================================================ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41893