The way the new_local_vars hash table is hashed in ipa-struct-reorg.c causes spurious code differences across runs of GCC. I saw this, for example, in gcc.dg/struct/wo_prof_two_strs.c:
--- base-mn10300-gcc-build/gcc/cc1 -mam33 +++ mn10300-gcc-build/gcc/cc1 -mam33 @@ -117,12 +117,12 @@ .comm _p2,4,4 .local _num .comm _num,4,4 - .local _p1___0 - .comm _p1___0,4,4 - .local _p1___1 - .comm _p1___1,4,4 .local _p2___0 .comm _p2___0,4,4 .local _p2___1 .comm _p2___1,4,4 + .local _p1___0 + .comm _p1___0,4,4 + .local _p1___1 + .comm _p1___1,4,4 .ident "GCC: (GNU) 4.4.0 20090314 (experimental)" -- Summary: incorrect pointer hashing in ipa-struct-reorg.c Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bonzini at gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39806