From: Nico Weber Date: Fri, 19 Feb 2016 02:51:07 +0000 (+0000) Subject: Fix SemaTemplate/instantiate-field.cpp after r261297. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b26af68557221b477c6e5db853c51c1818434de8;p=clang Fix SemaTemplate/instantiate-field.cpp after r261297. For templates, fields can have incomplete types: template struct A2 { struct B; B b; }; Don't try to touch the DefinitionData of those fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@261301 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp index c8edd5a1b4..e84b91388f 100644 --- a/lib/AST/DeclCXX.cpp +++ b/lib/AST/DeclCXX.cpp @@ -704,7 +704,7 @@ void CXXRecordDecl::addedMember(Decl *D) { if (!Field->hasInClassInitializer() && !Field->isMutable()) { if (CXXRecordDecl *FieldType = Field->getType()->getAsCXXRecordDecl()) { - if (!FieldType->allowConstDefaultInit()) + if (FieldType->hasDefinition() && !FieldType->allowConstDefaultInit()) data().HasUninitializedFields = true; } else { data().HasUninitializedFields = true;