@@ -1574,10 +1574,10 @@ namespace {
15741574 SubstNonTypeTemplateParmExpr *E);
15751575
15761576 // / Rebuild a DeclRefExpr for a VarDecl reference.
1577- ExprResult RebuildVarDeclRefExpr (VarDecl *PD, SourceLocation Loc);
1577+ ExprResult RebuildVarDeclRefExpr (ValueDecl *PD, SourceLocation Loc);
15781578
15791579 // / Transform a reference to a function or init-capture parameter pack.
1580- ExprResult TransformFunctionParmPackRefExpr (DeclRefExpr *E, VarDecl *PD);
1580+ ExprResult TransformFunctionParmPackRefExpr (DeclRefExpr *E, ValueDecl *PD);
15811581
15821582 // / Transform a FunctionParmPackExpr which was built when we couldn't
15831583 // / expand a function parameter pack reference which refers to an expanded
@@ -2389,7 +2389,7 @@ TemplateInstantiator::TransformSubstNonTypeTemplateParmExpr(
23892389 SugaredConverted, E->getPackIndex ());
23902390}
23912391
2392- ExprResult TemplateInstantiator::RebuildVarDeclRefExpr (VarDecl *PD,
2392+ ExprResult TemplateInstantiator::RebuildVarDeclRefExpr (ValueDecl *PD,
23932393 SourceLocation Loc) {
23942394 DeclarationNameInfo NameInfo (PD->getDeclName (), Loc);
23952395 return getSema ().BuildDeclarationNameExpr (CXXScopeSpec (), NameInfo, PD);
@@ -2399,8 +2399,8 @@ ExprResult
23992399TemplateInstantiator::TransformFunctionParmPackExpr (FunctionParmPackExpr *E) {
24002400 if (getSema ().ArgumentPackSubstitutionIndex != -1 ) {
24012401 // We can expand this parameter pack now.
2402- VarDecl *D = E->getExpansion (getSema ().ArgumentPackSubstitutionIndex );
2403- VarDecl *VD = cast_or_null<VarDecl >(TransformDecl (E->getExprLoc (), D));
2402+ ValueDecl *D = E->getExpansion (getSema ().ArgumentPackSubstitutionIndex );
2403+ ValueDecl *VD = cast_or_null<ValueDecl >(TransformDecl (E->getExprLoc (), D));
24042404 if (!VD)
24052405 return ExprError ();
24062406 return RebuildVarDeclRefExpr (VD, E->getExprLoc ());
@@ -2412,11 +2412,11 @@ TemplateInstantiator::TransformFunctionParmPackExpr(FunctionParmPackExpr *E) {
24122412
24132413 // Transform each of the parameter expansions into the corresponding
24142414 // parameters in the instantiation of the function decl.
2415- SmallVector<VarDecl *, 8 > Vars;
2415+ SmallVector<ValueDecl *, 8 > Vars;
24162416 Vars.reserve (E->getNumExpansions ());
24172417 for (FunctionParmPackExpr::iterator I = E->begin (), End = E->end ();
24182418 I != End; ++I) {
2419- VarDecl *D = cast_or_null<VarDecl >(TransformDecl (E->getExprLoc (), *I));
2419+ ValueDecl *D = cast_or_null<ValueDecl >(TransformDecl (E->getExprLoc (), *I));
24202420 if (!D)
24212421 return ExprError ();
24222422 Vars.push_back (D);
@@ -2431,7 +2431,7 @@ TemplateInstantiator::TransformFunctionParmPackExpr(FunctionParmPackExpr *E) {
24312431
24322432ExprResult
24332433TemplateInstantiator::TransformFunctionParmPackRefExpr (DeclRefExpr *E,
2434- VarDecl *PD) {
2434+ ValueDecl *PD) {
24352435 typedef LocalInstantiationScope::DeclArgumentPack DeclArgumentPack;
24362436 llvm::PointerUnion<Decl *, DeclArgumentPack *> *Found
24372437 = getSema ().CurrentInstantiationScope ->findInstantiationOf (PD);
@@ -2457,7 +2457,8 @@ TemplateInstantiator::TransformFunctionParmPackRefExpr(DeclRefExpr *E,
24572457 }
24582458
24592459 // We have either an unexpanded pack or a specific expansion.
2460- return RebuildVarDeclRefExpr (cast<VarDecl>(TransformedDecl), E->getExprLoc ());
2460+ return RebuildVarDeclRefExpr (cast<ValueDecl>(TransformedDecl),
2461+ E->getExprLoc ());
24612462}
24622463
24632464ExprResult
@@ -2479,15 +2480,6 @@ TemplateInstantiator::TransformDeclRefExpr(DeclRefExpr *E) {
24792480 if (PD->isParameterPack ())
24802481 return TransformFunctionParmPackRefExpr (E, PD);
24812482
2482- if (BindingDecl *BD = dyn_cast<BindingDecl>(D); BD && BD->isParameterPack ()) {
2483- BD = cast_or_null<BindingDecl>(TransformDecl (BD->getLocation (), BD));
2484- if (!BD)
2485- return ExprError ();
2486- if (auto *RP =
2487- dyn_cast_if_present<ResolvedUnexpandedPackExpr>(BD->getBinding ()))
2488- return TransformResolvedUnexpandedPackExpr (RP);
2489- }
2490-
24912483 return inherited::TransformDeclRefExpr (E);
24922484}
24932485
@@ -4683,7 +4675,7 @@ void LocalInstantiationScope::InstantiatedLocal(const Decl *D, Decl *Inst) {
46834675#endif
46844676 Stored = Inst;
46854677 } else if (DeclArgumentPack *Pack = dyn_cast<DeclArgumentPack *>(Stored)) {
4686- Pack->push_back (cast<VarDecl >(Inst));
4678+ Pack->push_back (cast<ValueDecl >(Inst));
46874679 } else {
46884680 assert (cast<Decl *>(Stored) == Inst && " Already instantiated this local" );
46894681 }
0 commit comments