From 23b1be991e6fe79e5ec1011bd2c91abd29b62898 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Thu, 1 Mar 2012 21:32:56 +0000 Subject: Fix the isReferenced bit on parameters in a couple of edge cases. PR12153. llvm-svn: 151837 --- clang/lib/Sema/SemaExpr.cpp | 1 + clang/lib/Sema/SemaTemplateVariadic.cpp | 2 ++ 2 files changed, 3 insertions(+) (limited to 'clang/lib/Sema') 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); } -- cgit v1.2.3