Joerg, the protocol here is to ask me and CC Bill, because only a code owner 
can approve changes to the branch.

Approved.

        - Doug

On Apr 28, 2012, at 9:18 AM, Joerg Sonnenberger wrote:

> Bill, please pull this onto the 3.1 branch.
> 
> Joerg
> 
> On Thu, Apr 26, 2012 at 10:43:24PM -0000, Eli Friedman wrote:
>> Author: efriedma
>> Date: Thu Apr 26 17:43:24 2012
>> New Revision: 155670
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=155670&view=rev
>> Log:
>> Add a missing ExpressionEvaluationContext for template default arguments.  
>> Fixes PR12581.
>> 
>> 
>> Modified:
>>    cfe/trunk/lib/Parse/ParseTemplate.cpp
>>    cfe/trunk/lib/Sema/SemaTemplate.cpp
>>    cfe/trunk/test/SemaTemplate/default-expr-arguments.cpp
>> 
>> Modified: cfe/trunk/lib/Parse/ParseTemplate.cpp
>> URL: 
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseTemplate.cpp?rev=155670&r1=155669&r2=155670&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Parse/ParseTemplate.cpp (original)
>> +++ cfe/trunk/lib/Parse/ParseTemplate.cpp Thu Apr 26 17:43:24 2012
>> @@ -652,6 +652,7 @@
>>     //   end of the template-parameter-list rather than a greater-than
>>     //   operator.
>>     GreaterThanIsOperatorScope G(GreaterThanIsOperator, false);
>> +    EnterExpressionEvaluationContext Unevaluated(Actions, 
>> Sema::Unevaluated);
>> 
>>     DefaultArg = ParseAssignmentExpression();
>>     if (DefaultArg.isInvalid())
>> 
>> Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp
>> URL: 
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=155670&r1=155669&r2=155670&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaTemplate.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaTemplate.cpp Thu Apr 26 17:43:24 2012
>> @@ -2562,6 +2562,7 @@
>>                                    SourceRange(TemplateLoc, RAngleLoc));
>> 
>>   Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
>> +  EnterExpressionEvaluationContext Unevaluated(SemaRef, Sema::Unevaluated);
>>   return SemaRef.SubstExpr(Param->getDefaultArgument(), AllTemplateArgs);
>> }
>> 
>> 
>> Modified: cfe/trunk/test/SemaTemplate/default-expr-arguments.cpp
>> URL: 
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/default-expr-arguments.cpp?rev=155670&r1=155669&r2=155670&view=diff
>> ==============================================================================
>> --- cfe/trunk/test/SemaTemplate/default-expr-arguments.cpp (original)
>> +++ cfe/trunk/test/SemaTemplate/default-expr-arguments.cpp Thu Apr 26 
>> 17:43:24 2012
>> @@ -292,3 +292,14 @@
>>     f();
>>   }
>> }
>> +
>> +namespace PR12581 {
>> +  const int a = 0;
>> +  template < typename > struct A;
>> +  template < typename MatrixType, int =
>> +  A < MatrixType >::Flags ? : A < MatrixType >::Flags & a > class B;
>> +  void
>> +  fn1 ()
>> +  {
>> +  }
>> +}
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> [email protected]
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to