ychen created this revision.
ychen added a reviewer: xbolva00.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D68482
Files:
clang/lib/Sema/SemaChecking.cpp
clang/test/Sema/warn-integer-constants-in-ternary.c
Index: clang/test/Sema/warn-integer-constants-in-ternary.c
===================================================================
--- clang/test/Sema/warn-integer-constants-in-ternary.c
+++ clang/test/Sema/warn-integer-constants-in-ternary.c
@@ -18,7 +18,7 @@
boolean r;
r = a ? (1) : TWO;
r = a ? 3 : TWO; // expected-warning {{converting the result of '?:' with
integer constants to a boolean always evaluates to 'true'}}
- r = a ? -2 : 0; // expected-warning {{converting the result of '?:' with
integer constants to a boolean always evaluates to 'true'}}
+ r = a ? -2 : 0;
r = a ? 3 : -2; // expected-warning {{converting the result of '?:' with
integer constants to a boolean always evaluates to 'true'}}
r = a ? 0 : TWO;
r = a ? 3 : ONE; // expected-warning {{converting the result of '?:' with
integer constants to a boolean always evaluates to 'true'}}
Index: clang/lib/Sema/SemaChecking.cpp
===================================================================
--- clang/lib/Sema/SemaChecking.cpp
+++ clang/lib/Sema/SemaChecking.cpp
@@ -11366,7 +11366,7 @@
(RHS->getValue() == 0 || RHS->getValue() == 1))
// Do not diagnose common idioms.
return;
- if (LHS->getValue() != 0 && LHS->getValue() != 0)
+ if (LHS->getValue() != 0 && RHS->getValue() != 0)
S.Diag(ExprLoc, diag::warn_integer_constants_in_conditional_always_true);
}
}
Index: clang/test/Sema/warn-integer-constants-in-ternary.c
===================================================================
--- clang/test/Sema/warn-integer-constants-in-ternary.c
+++ clang/test/Sema/warn-integer-constants-in-ternary.c
@@ -18,7 +18,7 @@
boolean r;
r = a ? (1) : TWO;
r = a ? 3 : TWO; // expected-warning {{converting the result of '?:' with integer constants to a boolean always evaluates to 'true'}}
- r = a ? -2 : 0; // expected-warning {{converting the result of '?:' with integer constants to a boolean always evaluates to 'true'}}
+ r = a ? -2 : 0;
r = a ? 3 : -2; // expected-warning {{converting the result of '?:' with integer constants to a boolean always evaluates to 'true'}}
r = a ? 0 : TWO;
r = a ? 3 : ONE; // expected-warning {{converting the result of '?:' with integer constants to a boolean always evaluates to 'true'}}
Index: clang/lib/Sema/SemaChecking.cpp
===================================================================
--- clang/lib/Sema/SemaChecking.cpp
+++ clang/lib/Sema/SemaChecking.cpp
@@ -11366,7 +11366,7 @@
(RHS->getValue() == 0 || RHS->getValue() == 1))
// Do not diagnose common idioms.
return;
- if (LHS->getValue() != 0 && LHS->getValue() != 0)
+ if (LHS->getValue() != 0 && RHS->getValue() != 0)
S.Diag(ExprLoc, diag::warn_integer_constants_in_conditional_always_true);
}
}
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits