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:
Sean Callanan 2013-05-01 23:18:34 +00:00
parent 89bbd1fb64
commit 16f45ca6ba
1 changed files with 3 additions and 3 deletions

View File

@ -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(),