On Fri, Jun 22, 2012 at 2:35 AM, Jason Merrill <ja...@redhat.com> wrote: > FAIL: g++.dg/debug/dwarf2/static-data-member2.C -std=gnu++98 > scan-assembler-not DW_TAG_enumerator > FAIL: g++.dg/debug/dwarf2/static-data-member2.C -std=gnu++98 > scan-assembler-not DW_TAG_enumeration_type > FAIL: g++.dg/debug/dwarf2/static-data-member2.C -std=gnu++11 > scan-assembler-not DW_TAG_enumerator > FAIL: g++.dg/debug/dwarf2/static-data-member2.C -std=gnu++11 > scan-assembler-not DW_TAG_enumeration_type
This is a side effect of moving enumerators from pubnames to pubtypes as requested in an earlier message in this thread. I should have pushed back harder on this change. prune_unused_types marks everything in the pubnames_table. If the enumerators go in the pubname table (but the enum itself goes in the pubtype table), then the unused enum becomes reachable from the pubnames table. The least complicated solution is to put them back in the pubtypes_table. I could also defer adding them until after types are pruned, I guess. One somewhat unsatisfying way to rationalize it in my mind is to say that as fields are to structs, so are enumerators to enums. What do you think? Sterling gcc/ChangeLog 2012-06-22 Sterling Augustine <sagust...@google.com> * dwarf2out.c (add_enumerator_pubname): Use pubtypes_table.