From: Richard Smith Date: Fri, 28 Dec 2012 12:53:55 +0000 (+0000) Subject: PR14729: Fix typo in CheckICE for BinaryConditionalOperators. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9b403c555a294530305f40dfee859b73070de542;p=clang PR14729: Fix typo in CheckICE for BinaryConditionalOperators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171191 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index d597638699..41132741a5 100644 --- a/lib/AST/ExprConstant.cpp +++ b/lib/AST/ExprConstant.cpp @@ -6734,7 +6734,7 @@ static ICEDiag CheckICE(const Expr* E, ASTContext &Ctx) { if (FalseResult.Val == 2) return FalseResult; if (CommonResult.Val == 1) return CommonResult; if (FalseResult.Val == 1 && - Exp->getCommon()->EvaluateKnownConstInt(Ctx) == 0) return NoDiag(); + Exp->getCommon()->EvaluateKnownConstInt(Ctx) != 0) return NoDiag(); return FalseResult; } case Expr::ConditionalOperatorClass: { diff --git a/test/Sema/i-c-e.c b/test/Sema/i-c-e.c index e7b42c4e9a..7749b6c1a0 100644 --- a/test/Sema/i-c-e.c +++ b/test/Sema/i-c-e.c @@ -73,3 +73,5 @@ int illegaldiv4[0 / (1 / 0)]; // expected-error {{variable length array declarat int chooseexpr[__builtin_choose_expr(1, 1, expr)]; int realop[(__real__ 4) == 4 ? 1 : -1]; int imagop[(__imag__ 4) == 0 ? 1 : -1]; + +int *PR14729 = 0 ?: 1/0; // expected-error {{not a compile-time constant}} expected-warning 3{{}}