summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2012-10-31 02:01:58 +0000
committerSean Callanan <scallanan@apple.com>2012-10-31 02:01:58 +0000
commit4ac7ec7341ff01218443ac71c7ea844123b97d7a (patch)
treea50710a114181cc7569ec8047f64df8ae6715ac0 /lldb/source/Plugins
parente2db91b8b0800dc091ea05136529d748455970c1 (diff)
downloadbcm5719-llvm-4ac7ec7341ff01218443ac71c7ea844123b97d7a.tar.gz
bcm5719-llvm-4ac7ec7341ff01218443ac71c7ea844123b97d7a.zip
Fixed a crash when we couldn't create a
CXXMethodDecl but tried to manipulate it anyway. <rdar://problem/12601996> llvm-svn: 167095
Diffstat (limited to 'lldb/source/Plugins')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index cf7d0ebbb81..56689f58136 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
OpenPOWER on IntegriCloud