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/SemaExpr.cpp | |
| 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/SemaExpr.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index e5a50656874..d4b05389f49 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -7314,7 +7314,14 @@ Sema::OwningExprResult Sema::ActOnBlockStmtExpr(SourceLocation CaretLoc, Sema::OwningExprResult Sema::ActOnVAArg(SourceLocation BuiltinLoc, ExprArg expr, TypeTy *type, SourceLocation RPLoc) { - QualType T = GetTypeFromParser(type); + TypeSourceInfo *TInfo; + QualType T = GetTypeFromParser(type, &TInfo); + return BuildVAArgExpr(BuiltinLoc, move(expr), TInfo, RPLoc); +} + +Sema::OwningExprResult Sema::BuildVAArgExpr(SourceLocation BuiltinLoc, + ExprArg expr, TypeSourceInfo *TInfo, + SourceLocation RPLoc) { Expr *E = static_cast<Expr*>(expr.get()); Expr *OrigExpr = E; @@ -7348,9 +7355,8 @@ Sema::OwningExprResult Sema::ActOnVAArg(SourceLocation BuiltinLoc, // FIXME: Warn if a non-POD type is passed in. expr.release(); - return Owned(new (Context) VAArgExpr(BuiltinLoc, E, - T.getNonLValueExprType(Context), - RPLoc)); + QualType T = TInfo->getType().getNonLValueExprType(Context); + return Owned(new (Context) VAArgExpr(BuiltinLoc, E, TInfo, RPLoc, T)); } Sema::OwningExprResult Sema::ActOnGNUNullExpr(SourceLocation TokenLoc) { |

