This is an archive of the discontinued LLVM Phabricator instance.

RFC 1/3: Unify src<->dst DWARFASTParser for CopyUniqueClassMethodTypes()
AbandonedPublic

Authored by jankratochvil on Nov 24 2019, 12:43 PM.

Details

Summary

This patchset is removing non-DWARF code from DWARFUnit as discussed with @labath.
For removing the dependency on DWARFDIE.GetCU() (D70647) I have found I can no longer find two different parsers in this case.
IIUC it would mean DW_AT_language is different between the defining and declaring DIE tree - which can happen (and lldbassert in this patch would fail then - this lldbassert is removed in the future patch anyway) but it would be a buggy DWARF in such case.
I do not plan to check it in yet. I plan to finish it for use by DWZ patchset first (D40474 et al.). Asking whether this is a good way forward.

Diff Detail

Event Timeline

jankratochvil created this revision.Nov 24 2019, 12:43 PM
jankratochvil edited the summary of this revision. (Show Details)Nov 24 2019, 1:13 PM
labath added a subscriber: teemperor.

@shafik or @teemperor will know more about this.

I think it's possible that for example with -gmodules we have multiple ClangASTContext's (and therefore multiple DWARFASTParserClang), but the only place where we call this function seems to only concerned about a single SymbolFileDWARF so this seems safe.

jankratochvil planned changes to this revision.Nov 25 2019, 9:28 AM
jankratochvil abandoned this revision.Jan 22 2020, 6:35 AM

This refactorization is no longer needed as I am abandoning D70647 to choose a different way.