diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-02-14 02:07:53 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2018-02-14 02:07:53 +0000 |
commit | f1f20e6802b286e44631c814181e27cf8a5bc947 (patch) | |
tree | feab1a4664d4b580da909a737e8c8d923a249af3 /clang/lib/Sema/SemaTemplateInstantiate.cpp | |
parent | 1d76120d9ad078c13453433621fa55f8983acd68 (diff) | |
download | bcm5719-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.cpp | 10 |
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); |