From: Sean Callanan Date: Wed, 31 Oct 2012 02:01:58 +0000 (+0000) Subject: Fixed a crash when we couldn't create a X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4ac7ec7341ff01218443ac71c7ea844123b97d7a;p=platform%2Fupstream%2Fllvm.git Fixed a crash when we couldn't create a CXXMethodDecl but tried to manipulate it anyway. llvm-svn: 167095 --- diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index cf7d0eb..56689f5 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -6115,24 +6115,29 @@ SymbolFileDWARF::ParseType (const SymbolContext& sc, DWARFCompileUnit* dwarf_cu, is_explicit, is_attr_used, is_artificial); - LinkDeclContextToDIE(ClangASTContext::GetAsDeclContext(cxx_method_decl), die); - - Host::SetCrashDescription (NULL); - - type_handled = cxx_method_decl != NULL; - ClangASTMetadata metadata; - metadata.SetUserID(MakeUserID(die->GetOffset())); - - if (!object_pointer_name.empty()) + type_handled = cxx_method_decl != NULL; + + if (type_handled) { - metadata.SetObjectPtrName(object_pointer_name.c_str()); - if (log) - log->Printf ("Setting object pointer name: %s on method object 0x%ld.\n", - object_pointer_name.c_str(), - (uintptr_t) cxx_method_decl); + LinkDeclContextToDIE(ClangASTContext::GetAsDeclContext(cxx_method_decl), die); + + Host::SetCrashDescription (NULL); + + + ClangASTMetadata metadata; + metadata.SetUserID(MakeUserID(die->GetOffset())); + + if (!object_pointer_name.empty()) + { + metadata.SetObjectPtrName(object_pointer_name.c_str()); + if (log) + log->Printf ("Setting object pointer name: %s on method object 0x%ld.\n", + object_pointer_name.c_str(), + (uintptr_t) cxx_method_decl); + } + GetClangASTContext().SetMetadata ((uintptr_t)cxx_method_decl, metadata); } - GetClangASTContext().SetMetadata ((uintptr_t)cxx_method_decl, metadata); } } else