------- Comment #5 from pinskia at gcc dot gnu dot org 2009-10-07 22:37 ------- This part is what is causing it: ! /* When reading back varpool at LTO time, we re-construct the queue in order ! to have "needed" list right by inserting all needed nodes into varpool. ! We however don't want to re-analyze already analyzed nodes. */ ! if (!analyzed) ! { ! gcc_assert (!in_lto_p); ! /* Compute the alignment early so function body expanders are ! already informed about increased alignment. */ ! align_variable (decl, 0);
! if (DECL_INITIAL (decl)) ! record_references_in_initializer (decl); ! } Moving the record_references_in_initializer outside of the !analyzed condition allows this testcase to work. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41626