diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-04-30 20:35:01 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-04-30 20:35:01 +0000 |
| commit | 0be628ff646a87fc691622633d94542eb7da078c (patch) | |
| tree | 6e5ea9a7d0d3f3d583012cb37dcd557efc3fe839 /clang/lib/AST/Expr.cpp | |
| parent | 3ca9a9b59cd21673930ee0a5b40ebf914537d7f8 (diff) | |
| download | bcm5719-llvm-0be628ff646a87fc691622633d94542eb7da078c.tar.gz bcm5719-llvm-0be628ff646a87fc691622633d94542eb7da078c.zip | |
Fix a thinko that caused us not to compute __builtin_offset as a
constant expression in C.
llvm-svn: 102762
Diffstat (limited to 'clang/lib/AST/Expr.cpp')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 82526119e2a..00662a53afe 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -1943,7 +1943,6 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) { case UnaryOperator::AddrOf: case UnaryOperator::Deref: return ICEDiag(2, E->getLocStart()); - case UnaryOperator::OffsetOf: case UnaryOperator::Extension: case UnaryOperator::LNot: case UnaryOperator::Plus: @@ -1952,7 +1951,11 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) { case UnaryOperator::Real: case UnaryOperator::Imag: return CheckICE(Exp->getSubExpr(), Ctx); + case UnaryOperator::OffsetOf: + break; } + + // OffsetOf falls through here. } case Expr::OffsetOfExprClass: { // Note that per C99, offsetof must be an ICE. And AFAIK, using |

