diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 5 | ||||
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 1 | 
2 files changed, 5 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 diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 445cf17aadf..5ce268bd9eb 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -4202,6 +4202,7 @@ TreeTransform<Derived>::TransformOffsetOfExpr(OffsetOfExpr *E) {    for (unsigned I = 0, N = E->getNumComponents(); I != N; ++I) {      const Node &ON = E->getComponent(I);      Component Comp; +    Comp.isBrackets = true;      Comp.LocStart = ON.getRange().getBegin();      Comp.LocEnd = ON.getRange().getEnd();      switch (ON.getKind()) { | 

