diff options
author | John McCall <rjmccall@apple.com> | 2011-07-15 05:09:51 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2011-07-15 05:09:51 +0000 |
commit | 91a5755ad73c5dc1dfb167e448fdd74e75a6df56 (patch) | |
tree | 3d9cea0acd2fabd28652ff520f22a80b9408f54e /lib/AST/ExprClassification.cpp | |
parent | 165622faa4a472ff94352dee534e2adeaac9c824 (diff) |
Create a new expression node, SubstNonTypeTemplateParmExpr,
to represent a fully-substituted non-type template parameter.
This should improve source fidelity, as well as being generically
useful for diagnostics and such.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135243 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ExprClassification.cpp')
-rw-r--r-- | lib/AST/ExprClassification.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/AST/ExprClassification.cpp b/lib/AST/ExprClassification.cpp index f75a56c39e..e7888a6aa7 100644 --- a/lib/AST/ExprClassification.cpp +++ b/lib/AST/ExprClassification.cpp @@ -165,6 +165,9 @@ static Cl::Kinds ClassifyInternal(ASTContext &Ctx, const Expr *E) { return Cl::CL_PRValue; // Next come the complicated cases. + case Expr::SubstNonTypeTemplateParmExprClass: + return ClassifyInternal(Ctx, + cast<SubstNonTypeTemplateParmExpr>(E)->getReplacement()); // C++ [expr.sub]p1: The result is an lvalue of type "T". // However, subscripting vector types is more like member access. |