diff options
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Symbol/Block.cpp')
-rw-r--r-- | contrib/llvm/tools/lldb/source/Symbol/Block.cpp | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/contrib/llvm/tools/lldb/source/Symbol/Block.cpp b/contrib/llvm/tools/lldb/source/Symbol/Block.cpp index 94fa166..dfe9217 100644 --- a/contrib/llvm/tools/lldb/source/Symbol/Block.cpp +++ b/contrib/llvm/tools/lldb/source/Symbol/Block.cpp @@ -546,27 +546,24 @@ Block::AppendVariables return num_variables_added; } -clang::DeclContext * -Block::GetClangDeclContext() +CompilerDeclContext +Block::GetDeclContext() { - SymbolContext sc; - - CalculateSymbolContext (&sc); - - if (!sc.module_sp) - return nullptr; - - SymbolVendor *sym_vendor = sc.module_sp->GetSymbolVendor(); - - if (!sym_vendor) - return nullptr; - - SymbolFile *sym_file = sym_vendor->GetSymbolFile(); + ModuleSP module_sp = CalculateSymbolContextModule (); + + if (module_sp) + { + SymbolVendor *sym_vendor = module_sp->GetSymbolVendor(); - if (!sym_file) - return nullptr; + if (sym_vendor) + { + SymbolFile *sym_file = sym_vendor->GetSymbolFile(); - return sym_file->GetClangDeclContextForTypeUID (sc, m_uid); + if (sym_file) + return sym_file->GetDeclContextForUID (GetID()); + } + } + return CompilerDeclContext(); } void |