diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2008-08-28 18:42:20 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2008-08-28 18:42:20 +0000 |
| commit | 8c8616377dbddb73a9b3c20df075b18035259f6e (patch) | |
| tree | 0a5451ccd40387c7af67e0a6570b18db25855783 /clang/lib | |
| parent | 2eb49f295d9e952f3726de2ee5ba6516ba8ccc1c (diff) | |
| download | bcm5719-llvm-8c8616377dbddb73a9b3c20df075b18035259f6e.tar.gz bcm5719-llvm-8c8616377dbddb73a9b3c20df075b18035259f6e.zip | |
Fix isIntegerConstantExpr eval of __builtin_offsetof to return result
with correct width.
- PR2728.
Also, fix PR2727 test case.
llvm-svn: 55493
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 49c76a89d86..1410f7e05ca 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -814,6 +814,7 @@ bool Expr::isIntegerConstantExpr(llvm::APSInt &Result, ASTContext &Ctx, Result = ~Result; break; case UnaryOperator::OffsetOf: + Result.zextOrTrunc(static_cast<uint32_t>(Ctx.getTypeSize(getType()))); Result = Exp->evaluateOffsetOf(Ctx); } break; |

