Author: nico Date: Thu Feb 18 20:51:07 2016 New Revision: 261301 URL: http://llvm.org/viewvc/llvm-project?rev=261301&view=rev Log: Fix SemaTemplate/instantiate-field.cpp after r261297.
For templates, fields can have incomplete types: template <class T> struct A2 { struct B; B b; }; Don't try to touch the DefinitionData of those fields. Modified: cfe/trunk/lib/AST/DeclCXX.cpp Modified: cfe/trunk/lib/AST/DeclCXX.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclCXX.cpp?rev=261301&r1=261300&r2=261301&view=diff ============================================================================== --- cfe/trunk/lib/AST/DeclCXX.cpp (original) +++ cfe/trunk/lib/AST/DeclCXX.cpp Thu Feb 18 20:51:07 2016 @@ -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; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits