diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index a0b6e2c2f82..6a3dfc911f4 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -1015,12 +1015,12 @@ void Sema::ActOnMemInitializers(DeclPtrTy ConstructorDecl, continue; FieldDecl *Field = Member->getMember(); QualType FT = Context.getBaseElementType(Field->getType()); - if (const RecordType* RT = FT->getAs<RecordType>()) { - CXXConstructorDecl *Ctor = - cast<CXXRecordDecl>(RT->getDecl())->getDefaultConstructor(Context); - if (Ctor && !FT->isDependentType()) + if (FT->isDependentType()) + continue; + if (const RecordType* RT = FT->getAs<RecordType>()) + if (CXXConstructorDecl *Ctor = + cast<CXXRecordDecl>(RT->getDecl())->getDefaultConstructor(Context)) MarkDeclarationReferenced(Ctor->getLocation(), Ctor); - } } if (Diags.getDiagnosticLevel(diag::warn_base_initialized) == Diagnostic::Ignored && |