[llvm-branch-commits] [cfe-branch] r155671 - in /cfe/branches/release_31: ./ lib/Parse/ParseTemplate.cpp lib/Sema/SemaTemplate.cpp test/SemaCXX/warn-unreachable.cpp test/SemaTemplate/default-expr-arguments.cpp
Bill Wendling
isanbard at gmail.com
Thu Apr 26 16:03:48 PDT 2012
Author: void
Date: Thu Apr 26 18:03:48 2012
New Revision: 155671
URL: http://llvm.org/viewvc/llvm-project?rev=155671&view=rev
Log:
Merging r155670:
------------------------------------------------------------------------
r155670 | efriedma | 2012-04-26 15:43:24 -0700 (Thu, 26 Apr 2012) | 3 lines
Add a missing ExpressionEvaluationContext for template default arguments. Fixes PR12581.
------------------------------------------------------------------------
Modified:
cfe/branches/release_31/ (props changed)
cfe/branches/release_31/lib/Parse/ParseTemplate.cpp
cfe/branches/release_31/lib/Sema/SemaTemplate.cpp
cfe/branches/release_31/test/SemaCXX/warn-unreachable.cpp (props changed)
cfe/branches/release_31/test/SemaTemplate/default-expr-arguments.cpp
Propchange: cfe/branches/release_31/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 26 18:03:48 2012
@@ -1,3 +1,3 @@
/cfe/branches/type-system-rewrite:134693-134817
-/cfe/trunk:155076,155279,155342,155534-155535,155576
+/cfe/trunk:155076,155279,155342,155534-155535,155576,155670
/cfe/trunk/test/SemaTemplate:126920
Modified: cfe/branches/release_31/lib/Parse/ParseTemplate.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_31/lib/Parse/ParseTemplate.cpp?rev=155671&r1=155670&r2=155671&view=diff
==============================================================================
--- cfe/branches/release_31/lib/Parse/ParseTemplate.cpp (original)
+++ cfe/branches/release_31/lib/Parse/ParseTemplate.cpp Thu Apr 26 18:03:48 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/branches/release_31/lib/Sema/SemaTemplate.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_31/lib/Sema/SemaTemplate.cpp?rev=155671&r1=155670&r2=155671&view=diff
==============================================================================
--- cfe/branches/release_31/lib/Sema/SemaTemplate.cpp (original)
+++ cfe/branches/release_31/lib/Sema/SemaTemplate.cpp Thu Apr 26 18:03:48 2012
@@ -2546,6 +2546,7 @@
SourceRange(TemplateLoc, RAngleLoc));
Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
+ EnterExpressionEvaluationContext Unevaluated(SemaRef, Sema::Unevaluated);
return SemaRef.SubstExpr(Param->getDefaultArgument(), AllTemplateArgs);
}
Propchange: cfe/branches/release_31/test/SemaCXX/warn-unreachable.cpp
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Apr 26 18:03:48 2012
@@ -1,2 +1,2 @@
/cfe/branches/type-system-rewrite/test/SemaCXX/warn-unreachable.cpp:134693-134817
-/cfe/trunk/test/SemaCXX/warn-unreachable.cpp:121961,155076,155279,155342,155534-155535,155576
+/cfe/trunk/test/SemaCXX/warn-unreachable.cpp:121961,155076,155279,155342,155534-155535,155576,155670
Modified: cfe/branches/release_31/test/SemaTemplate/default-expr-arguments.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_31/test/SemaTemplate/default-expr-arguments.cpp?rev=155671&r1=155670&r2=155671&view=diff
==============================================================================
--- cfe/branches/release_31/test/SemaTemplate/default-expr-arguments.cpp (original)
+++ cfe/branches/release_31/test/SemaTemplate/default-expr-arguments.cpp Thu Apr 26 18:03:48 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 ()
+ {
+ }
+}
More information about the llvm-branch-commits
mailing list