261ac3f4b5
class DWARFASTParser { public: virtual ~DWARFASTParser() {} virtual lldb::TypeSP ParseTypeFromDWARF (const lldb_private::SymbolContext& sc, const DWARFDIE &die, lldb_private::Log *log, bool *type_is_new_ptr) = 0; virtual lldb_private::Function * ParseFunctionFromDWARF (const lldb_private::SymbolContext& sc, const DWARFDIE &die) = 0; virtual bool CompleteTypeFromDWARF (const DWARFDIE &die, lldb_private::Type *type, lldb_private::CompilerType &clang_type) = 0; virtual lldb_private::CompilerDeclContext GetDeclContextForUIDFromDWARF (const DWARFDIE &die) = 0; virtual lldb_private::CompilerDeclContext GetDeclContextContainingUIDFromDWARF (const DWARFDIE &die) = 0; }; We have one subclass named DWARFASTParserClang that implements all of the clang specific AST type parsing. This keeps all DWARF parsing in the DWARF plug-in. Moved all of the DWARF parsing code that was in ClangASTContext over into DWARFASTParserClang. lldb_private::TypeSystem classes no longer have any DWARF parsing functions in them, but they can hand out a DWARFASTParser: virtual DWARFASTParser * GetDWARFParser () { return nullptr; } This keeps things clean and makes for easy merging when we have different AST's for different languages. llvm-svn: 246242 |
||
---|---|---|
.. | ||
Block.cpp | ||
CMakeLists.txt | ||
ClangASTContext.cpp | ||
ClangASTImporter.cpp | ||
ClangExternalASTSourceCallbacks.cpp | ||
ClangExternalASTSourceCommon.cpp | ||
CompactUnwindInfo.cpp | ||
CompileUnit.cpp | ||
CompilerDeclContext.cpp | ||
CompilerType.cpp | ||
DWARFCallFrameInfo.cpp | ||
Declaration.cpp | ||
FuncUnwinders.cpp | ||
Function.cpp | ||
LineEntry.cpp | ||
LineTable.cpp | ||
Makefile | ||
ObjectFile.cpp | ||
Symbol.cpp | ||
SymbolContext.cpp | ||
SymbolFile.cpp | ||
SymbolVendor.cpp | ||
Symtab.cpp | ||
Type.cpp | ||
TypeList.cpp | ||
TypeSystem.cpp | ||
UnwindPlan.cpp | ||
UnwindTable.cpp | ||
Variable.cpp | ||
VariableList.cpp | ||
VerifyDecl.cpp |