diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-03-01 21:32:56 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-03-01 21:32:56 +0000 |
commit | 23b1be991e6fe79e5ec1011bd2c91abd29b62898 (patch) | |
tree | cc9faf1e8dd7881af2984cea5e1c0fb7b8287b48 /clang/lib | |
parent | 29c5e5bb7d8ae9509ca8af7decd162160fcc3e4e (diff) | |
download | bcm5719-llvm-23b1be991e6fe79e5ec1011bd2c91abd29b62898.tar.gz bcm5719-llvm-23b1be991e6fe79e5ec1011bd2c91abd29b62898.zip |
Fix the isReferenced bit on parameters in a couple of edge cases. PR12153.
llvm-svn: 151837
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 1 | ||||
-rw-r--r-- | clang/lib/Sema/SemaTemplateVariadic.cpp | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 027ec73d494..149201192f3 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -9630,6 +9630,7 @@ static ExprResult captureInLambda(Sema &S, LambdaScopeInfo *LSI, // An entity captured by a lambda-expression is odr-used (3.2) in // the scope containing the lambda-expression. Expr *Ref = new (S.Context) DeclRefExpr(Var, DeclRefType, VK_LValue, Loc); + Var->setReferenced(true); Var->setUsed(true); // When the field has array type, create index variables for each diff --git a/clang/lib/Sema/SemaTemplateVariadic.cpp b/clang/lib/Sema/SemaTemplateVariadic.cpp index 15a308575a0..3a547ddf68a 100644 --- a/clang/lib/Sema/SemaTemplateVariadic.cpp +++ b/clang/lib/Sema/SemaTemplateVariadic.cpp @@ -779,6 +779,8 @@ ExprResult Sema::ActOnSizeofParameterPackExpr(Scope *S, return ExprError(); } + MarkAnyDeclReferenced(OpLoc, ParameterPack); + return new (Context) SizeOfPackExpr(Context.getSizeType(), OpLoc, ParameterPack, NameLoc, RParenLoc); } |