summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateInstantiate.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2018-02-14 02:07:53 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2018-02-14 02:07:53 +0000
commitf1f20e6802b286e44631c814181e27cf8a5bc947 (patch)
treefeab1a4664d4b580da909a737e8c8d923a249af3 /clang/lib/Sema/SemaTemplateInstantiate.cpp
parent1d76120d9ad078c13453433621fa55f8983acd68 (diff)
downloadbcm5719-llvm-f1f20e6802b286e44631c814181e27cf8a5bc947.tar.gz
bcm5719-llvm-f1f20e6802b286e44631c814181e27cf8a5bc947.zip
Fix a couple of places where we assumed that non-type template parameters are always rvalues.
llvm-svn: 325095
Diffstat (limited to 'clang/lib/Sema/SemaTemplateInstantiate.cpp')
-rw-r--r--clang/lib/Sema/SemaTemplateInstantiate.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiate.cpp b/clang/lib/Sema/SemaTemplateInstantiate.cpp
index 489d026027d..2c4f6490789 100644
--- a/clang/lib/Sema/SemaTemplateInstantiate.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiate.cpp
@@ -1212,11 +1212,11 @@ TemplateInstantiator::TransformTemplateParmRefExpr(DeclRefExpr *E,
NTTP->getDeclName());
if (TargetType.isNull())
return ExprError();
-
- return new (SemaRef.Context) SubstNonTypeTemplateParmPackExpr(TargetType,
- NTTP,
- E->getLocation(),
- Arg);
+
+ return new (SemaRef.Context) SubstNonTypeTemplateParmPackExpr(
+ TargetType.getNonLValueExprType(SemaRef.Context),
+ TargetType->isReferenceType() ? VK_LValue : VK_RValue, NTTP,
+ E->getLocation(), Arg);
}
Arg = getPackSubstitutedTemplateArgument(getSema(), Arg);
OpenPOWER on IntegriCloud