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]

[debug-early] Disable removal of DW_tags* while generating subprogram DIEs


This patch disables removing of DW_AT_{declaration,object_pointer,formal_parameter} tags while generating a DIE for subprograms. Now that we generate dwarf info early, we will always have an old_die the second time around. I see no need to remove the aforementioned tags, only to create them again (incorrectly in a C++ testcase I have).

Previously I had the removal predicated by !old_die->dumped_early, hence removing it only if it had not been dumped early, but this is problematic since types do not have the `dumped_early' flag set. I could add a debug_hook for early_type_decl(), as we did for early_global_decl(), so we can tag dumped early types as such, but I'm _hoping_ the change here is sufficient. Things should "just work". If not, perhaps we can look into adding an early_type_decl() hook or some other solution.

With this patch I am finally able to build all of libstdc++ without any ICEs, all while keeping the guality.exp tests for C at less regressions than mainline.

Comitting to branch.  Whine if in violent disagreement.

Aldy

Attachment: curr
Description: Text document


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