This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Updated to respond to various email comments from Jason, Diego and Cary (issue6197069)


On Fri, Jun 22, 2012 at 2:35 AM, Jason Merrill <jason@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  <sagustine@google.com>

	* dwarf2out.c (add_enumerator_pubname): Use pubtypes_table.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]