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> llvm-svn: 180895
This commit is contained in:
parent
89bbd1fb64
commit
16f45ca6ba
|
@ -1769,6 +1769,9 @@ ClangASTContext::AddMethodToCXXRecordType
|
|||
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::AddMethodToCXXRecordType
|
|||
}
|
||||
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(),
|
||||
|
|
Loading…
Reference in New Issue