diff options
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 6668aeaac55..99c1338fbae 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -3257,8 +3257,11 @@ void Sema::ActOnUninitializedDecl(DeclPtrTy dcl, if (!Constructor) Var->setInvalidDecl(); else { - if (!RD->hasTrivialConstructor() || !RD->hasTrivialDestructor()) - InitializeVarWithConstructor(Var, Constructor, InitType, 0, 0); + if (!RD->hasTrivialConstructor() || !RD->hasTrivialDestructor()) { + if (InitializeVarWithConstructor(Var, Constructor, InitType, 0, 0)) + Var->setInvalidDecl(); + } + FinalizeVarWithDestructor(Var, InitType); } } |