From b26af68557221b477c6e5db853c51c1818434de8 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Fri, 19 Feb 2016 02:51:07 +0000 Subject: [PATCH] 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 --- lib/AST/DeclCXX.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; -- 2.40.0