From 27db23948c65e8737d763c3b1ed4b4427d264665 Mon Sep 17 00:00:00 2001 From: Abramo Bagnara Date: Tue, 10 Aug 2010 10:06:15 +0000 Subject: Added TypeLocs to VAArgExpr node. llvm-svn: 110666 --- clang/lib/Sema/TreeTransform.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'clang/lib/Sema/TreeTransform.h') diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 65107ccfe79..a61768bcf43 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -1311,10 +1311,12 @@ public: /// /// By default, performs semantic analysis to build the new expression. /// Subclasses may override this routine to provide different behavior. - OwningExprResult RebuildVAArgExpr(SourceLocation BuiltinLoc, ExprArg SubExpr, - QualType T, SourceLocation RParenLoc) { - return getSema().ActOnVAArg(BuiltinLoc, move(SubExpr), T.getAsOpaquePtr(), - RParenLoc); + OwningExprResult RebuildVAArgExpr(SourceLocation BuiltinLoc, + ExprArg SubExpr, TypeSourceInfo *TInfo, + SourceLocation RParenLoc) { + return getSema().BuildVAArgExpr(BuiltinLoc, + move(SubExpr), TInfo, + RParenLoc); } /// \brief Build a new expression list in parentheses. @@ -4780,14 +4782,12 @@ TreeTransform::TransformImplicitValueInitExpr( template Sema::OwningExprResult TreeTransform::TransformVAArgExpr(VAArgExpr *E) { - // FIXME: Do we want the type as written? - QualType T; - + TypeSourceInfo *TInfo; { // FIXME: Source location isn't quite accurate. TemporaryBase Rebase(*this, E->getBuiltinLoc(), DeclarationName()); - T = getDerived().TransformType(E->getType()); - if (T.isNull()) + TInfo = getDerived().TransformType(E->getWrittenTypeInfo()); + if (!TInfo) return SemaRef.ExprError(); } @@ -4796,12 +4796,12 @@ TreeTransform::TransformVAArgExpr(VAArgExpr *E) { return SemaRef.ExprError(); if (!getDerived().AlwaysRebuild() && - T == E->getType() && + TInfo == E->getWrittenTypeInfo() && SubExpr.get() == E->getSubExpr()) return SemaRef.Owned(E->Retain()); return getDerived().RebuildVAArgExpr(E->getBuiltinLoc(), move(SubExpr), - T, E->getRParenLoc()); + TInfo, E->getRParenLoc()); } template -- cgit v1.2.3