diff options
| author | Abramo Bagnara <abramo.bagnara@gmail.com> | 2010-08-10 10:06:15 +0000 |
|---|---|---|
| committer | Abramo Bagnara <abramo.bagnara@gmail.com> | 2010-08-10 10:06:15 +0000 |
| commit | 27db23948c65e8737d763c3b1ed4b4427d264665 (patch) | |
| tree | 922a7a7d80d0059794a8741642bd4423b1741e22 /clang/lib/Sema/TreeTransform.h | |
| parent | 7fbe6cb42930a880afea561e0e882e0e390f5225 (diff) | |
| download | bcm5719-llvm-27db23948c65e8737d763c3b1ed4b4427d264665.tar.gz bcm5719-llvm-27db23948c65e8737d763c3b1ed4b4427d264665.zip | |
Added TypeLocs to VAArgExpr node.
llvm-svn: 110666
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 22 |
1 files changed, 11 insertions, 11 deletions
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<Derived>::TransformImplicitValueInitExpr( template<typename Derived> Sema::OwningExprResult TreeTransform<Derived>::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<Derived>::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<typename Derived> |

