[Lldb-commits] [lldb] r180895 - Make our eliding of artificially-generated methods

Sean Callanan scallanan at apple.com
Wed May 1 16:18:34 PDT 2013


Author: spyffe
Date: Wed May  1 18:18:34 2013
New Revision: 180895

URL: http://llvm.org/viewvc/llvm-project?rev=180895&view=rev
Log:
Make our eliding of artificially-generated methods
in debug information more aggressive.  Emitting
classes containing these methods causes crashes in
Clang when dealing with complex code bases.

<rdar://problem/12640887>

Modified:
    lldb/trunk/source/Symbol/ClangASTContext.cpp

Modified: lldb/trunk/source/Symbol/ClangASTContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Symbol/ClangASTContext.cpp?rev=180895&r1=180894&r2=180895&view=diff
==============================================================================
--- lldb/trunk/source/Symbol/ClangASTContext.cpp (original)
+++ lldb/trunk/source/Symbol/ClangASTContext.cpp Wed May  1 18:18:34 2013
@@ -1769,6 +1769,9 @@ ClangASTContext::AddMethodToCXXRecordTyp
     CXXDestructorDecl *cxx_dtor_decl(NULL);
     CXXConstructorDecl *cxx_ctor_decl(NULL);
     
+    if (is_artificial)
+        return NULL; // skip everything artificial
+    
     if (name[0] == '~')
     {
         cxx_dtor_decl = CXXDestructorDecl::Create (*ast,
@@ -1783,9 +1786,6 @@ ClangASTContext::AddMethodToCXXRecordTyp
     }
     else if (decl_name == cxx_record_decl->getDeclName())
     {
-       if (is_artificial && method_function_prototype->getNumArgs() == 1)
-          return NULL; // skip artificial copy constructors
-        
        cxx_ctor_decl = CXXConstructorDecl::Create (*ast,
                                                    cxx_record_decl,
                                                    SourceLocation(),





More information about the lldb-commits mailing list