P0217R3: code generation support for decomposition declarations.
llvm-svn: 278642
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 6193cd0..0dc6876 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -1160,6 +1160,7 @@
RefVD->setImplicit();
if (Src->isInlineSpecified())
RefVD->setInlineSpecified();
+ RefVD->getLexicalDeclContext()->addHiddenDecl(RefVD);
InitializedEntity Entity = InitializedEntity::InitializeBinding(RefVD);
InitializationKind Kind = InitializationKind::CreateCopy(Loc, Loc);
@@ -1167,11 +1168,12 @@
E = Seq.Perform(S, Entity, Kind, Init);
if (E.isInvalid())
return true;
+ E = S.ActOnFinishFullExpr(E.get(), Loc);
+ if (E.isInvalid())
+ return true;
RefVD->setInit(E.get());
RefVD->checkInitIsICE();
- RefVD->getLexicalDeclContext()->addHiddenDecl(RefVD);
-
E = S.BuildDeclarationNameExpr(CXXScopeSpec(),
DeclarationNameInfo(B->getDeclName(), Loc),
RefVD);