summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
authorAbramo Bagnara <abramo.bagnara@gmail.com>2010-08-10 10:06:15 +0000
committerAbramo Bagnara <abramo.bagnara@gmail.com>2010-08-10 10:06:15 +0000
commit27db23948c65e8737d763c3b1ed4b4427d264665 (patch)
tree922a7a7d80d0059794a8741642bd4423b1741e22 /clang/lib/Sema/TreeTransform.h
parent7fbe6cb42930a880afea561e0e882e0e390f5225 (diff)
downloadbcm5719-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.h22
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>
OpenPOWER on IntegriCloud