[Lldb-commits] [lldb] r167095 - /lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Sean Callanan scallanan at apple.com
Tue Oct 30 19:01:59 PDT 2012


Author: spyffe
Date: Tue Oct 30 21:01:58 2012
New Revision: 167095

URL: http://llvm.org/viewvc/llvm-project?rev=167095&view=rev
Log:
Fixed a crash when we couldn't create a
CXXMethodDecl but tried to manipulate it
anyway.

<rdar://problem/12601996>

Modified:
    lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp?rev=167095&r1=167094&r2=167095&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp (original)
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Tue Oct 30 21:01:58 2012
@@ -6115,24 +6115,29 @@
                                                                                                     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





More information about the lldb-commits mailing list