diff options
Diffstat (limited to 'clang/lib/AST')
| -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 969098c2346..fb79f4d0f24 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -1331,7 +1331,6 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) {    case Expr::VAArgExprClass:    case Expr::AddrLabelExprClass:    case Expr::StmtExprClass: -  case Expr::GNUNullExprClass:    case Expr::CXXMemberCallExprClass:    case Expr::CXXDynamicCastExprClass:    case Expr::CXXTypeidExprClass: @@ -1368,6 +1367,10 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) {    case Expr::ExprClass:      return ICEDiag(2, E->getLocStart()); +  case Expr::GNUNullExprClass: +    // GCC considers the GNU __null value to be an integral constant expression. +    return NoDiag(); +          case Expr::ParenExprClass:      return CheckICE(cast<ParenExpr>(E)->getSubExpr(), Ctx);    case Expr::IntegerLiteralClass:  | 

