>>>> + if (dwarf_version >= 4 || dwarf_split_debug_info) >>> >>> Shouldn't -gsplit-debug require -gdwarf-4+ anyway? >> >> Seems better to check explicitly than to rely on an implied relationship. > > I think Jason is right here. Although they are theoretically separate, > there has been no testing of -gsplit-dwarf without dwarf4, and I don't > think we plan to test it that way. > > I think the best thing to do is make -gspit-debug-info imply dwarf4. > I'll fix it up.
OK, sounds good to me. >>>> - add_AT_pubnames (comp_unit_die ()); >>>> + if (!dwarf_split_debug_info) >>>> + add_AT_pubnames (comp_unit_die ()); >>> >>> Why not emit AT_pubnames with DWO? >> >> In the dwarf_split_debug_info case, the attribute gets added by >> add_top_level_skeleton_die_attrs. Looks like both cases should be >> handled in the same place -- Sterling, can you remove the call in >> add_top_level_skeleton_die_attrs and make the one in dwarf2out_finish >> unconditional (using main_comp_unit_die)? > > AT_pubnames needs to go in all the skeleton dies, including the TUs, > so moving the call from add_top_level_skeleton_die_attrs would cause a > problem. Adding it here also would make me need to special case the > comp_unit_die there. So that's pretty confusing. > > Still, you are absolutely right that it is confusing here. I'll add a > comment to sort it all out. Right, I should have remembered about the TUs. -cary