diff options
| author | Greg Clayton <gclayton@apple.com> | 2011-08-04 21:02:57 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2011-08-04 21:02:57 +0000 |
| commit | 2c5f0e96c48417e6035fecda056084ee685bc531 (patch) | |
| tree | 13fb1303aac2bcd691e3f4ce01661466532b7aea | |
| parent | d63991ca4ad5108f979ddf5fdb70f63066b34058 (diff) | |
| download | bcm5719-llvm-2c5f0e96c48417e6035fecda056084ee685bc531.tar.gz bcm5719-llvm-2c5f0e96c48417e6035fecda056084ee685bc531.zip | |
Make sure we track CXX and objc method decls.
llvm-svn: 136920
| -rw-r--r-- | lldb/include/lldb/Symbol/ClangASTContext.h | 7 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 3 | ||||
| -rw-r--r-- | lldb/source/Symbol/ClangASTContext.cpp | 12 |
3 files changed, 22 insertions, 0 deletions
diff --git a/lldb/include/lldb/Symbol/ClangASTContext.h b/lldb/include/lldb/Symbol/ClangASTContext.h index 3b0fe28999d..ffd5e1b16f4 100644 --- a/lldb/include/lldb/Symbol/ClangASTContext.h +++ b/lldb/include/lldb/Symbol/ClangASTContext.h @@ -300,6 +300,13 @@ public: is_explicit); } + static clang::DeclContext * + GetAsDeclContext (clang::CXXMethodDecl *cxx_method_decl); + + static clang::DeclContext * + GetAsDeclContext (clang::ObjCMethodDecl *objc_method_decl); + + static bool CheckOverloadedOperatorKindParameterCount (uint32_t op_kind, uint32_t num_params); diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index f33b6446def..c29a78db9b4 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -3645,6 +3645,7 @@ SymbolFileDWARF::ParseType (const SymbolContext& sc, DWARFCompileUnit* dwarf_cu, type_name_cstr, clang_type, accessibility); + LinkDeclContextToDIE(ClangASTContext::GetAsDeclContext(objc_method_decl), die); type_handled = objc_method_decl != NULL; } } @@ -3683,6 +3684,8 @@ SymbolFileDWARF::ParseType (const SymbolContext& sc, DWARFCompileUnit* dwarf_cu, is_static, is_inline, is_explicit); + LinkDeclContextToDIE(ClangASTContext::GetAsDeclContext(cxx_method_decl), die); + type_handled = cxx_method_decl != NULL; } } diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp index e937db0845f..6915f7c94b7 100644 --- a/lldb/source/Symbol/ClangASTContext.cpp +++ b/lldb/source/Symbol/ClangASTContext.cpp @@ -4912,3 +4912,15 @@ ClangASTContext::GetCompleteDecl (clang::ASTContext *ast, } } +clang::DeclContext * +ClangASTContext::GetAsDeclContext (clang::CXXMethodDecl *cxx_method_decl) +{ + return clang::dyn_cast<clang::DeclContext>(cxx_method_decl); +} + +clang::DeclContext * +ClangASTContext::GetAsDeclContext (clang::ObjCMethodDecl *objc_method_decl) +{ + return clang::dyn_cast<clang::DeclContext>(objc_method_decl); +} + |

