]> granicus.if.org Git - clang/commitdiff
Change the expression evaluation context from Unevaluated to ConstantEvaluated while...
authorFaisal Vali <faisalv@yahoo.com>
Thu, 19 Nov 2015 19:20:17 +0000 (19:20 +0000)
committerFaisal Vali <faisalv@yahoo.com>
Thu, 19 Nov 2015 19:20:17 +0000 (19:20 +0000)
Also address a typo from a prior patch that performed a similar fix during Parsing of default non-type template arguments.  I left the RAII ExpressionEvaluationContext variable Name as Unevaluated though we had switched the context to ConstantEvaluated.

There should be no functionality change here - since when expression evaluation context is popped off, for the most part these two contexts currently behave similarly in regards to lambda diagnostics and odr-use tracking.

Like its parsing counterpart, this patch presages the advent of constexpr lambda patches...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@253590 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseTemplate.cpp
lib/Sema/SemaTemplate.cpp

index d661ce023a81cba850edb1913ba2a4af744321fa..4fcd8b346c73adaef3da4493c175405ac4f8b1c4 100644 (file)
@@ -695,8 +695,8 @@ Parser::ParseNonTypeTemplateParameter(unsigned Depth, unsigned Position) {
     //   end of the template-parameter-list rather than a greater-than
     //   operator.
     GreaterThanIsOperatorScope G(GreaterThanIsOperator, false);
-    EnterExpressionEvaluationContext Unevaluated(Actions,
-                                                 Sema::ConstantEvaluated);
+    EnterExpressionEvaluationContext ConstantEvaluated(Actions,
+                                                       Sema::ConstantEvaluated);
 
     DefaultArg = Actions.CorrectDelayedTyposInExpr(ParseAssignmentExpression());
     if (DefaultArg.isInvalid())
index c4c281488344a0c8a0cc3bfcbad85231ad613293..2b637029640d34ed8b492de7cc673ca0f4fd9a1d 100644 (file)
@@ -3280,7 +3280,8 @@ SubstDefaultTemplateArgument(Sema &SemaRef,
     TemplateArgLists.addOuterTemplateArguments(None);
 
   Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
-  EnterExpressionEvaluationContext Unevaluated(SemaRef, Sema::Unevaluated);
+  EnterExpressionEvaluationContext ConstantEvaluated(SemaRef,
+                                                     Sema::ConstantEvaluated);
   return SemaRef.SubstExpr(Param->getDefaultArgument(), TemplateArgLists);
 }