warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
* c-c++-common/pr49706-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211902
138bc75d-0d04-0410-961f-
82ee72b054a4
+2014-06-23 Marek Polacek <polacek@redhat.com>
+
+ * c-typeck.c (parser_build_binary_op): Don't call
+ warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
+
2014-06-15 Jan Hubicka <hubicka@ucw.cz>
* c-parser.c (c_parser_omp_threadprivate): Likewise.
code1, arg1.value, code2, arg2.value);
if (warn_logical_not_paren
- && code1 == TRUTH_NOT_EXPR)
+ && code1 == TRUTH_NOT_EXPR
+ && code2 != TRUTH_NOT_EXPR)
warn_logical_not_parentheses (location, code, arg1.value, arg2.value);
/* Warn about comparisons against string literals, with the exception
+2014-06-23 Marek Polacek <polacek@redhat.com>
+
+ * c-c++-common/pr49706-2.c: New test.
+
2014-06-23 Alan Modra <amodra@gmail.com>
* gcc.dg/pr61583.c: New.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-Wlogical-not-parentheses" } */
+
+/* Test that we don't warn if both operands of the comparison
+ are negated. */
+
+#ifndef __cplusplus
+#define bool _Bool
+#endif
+
+bool r;
+
+int
+same (int a, int b)
+{
+ r = !a == !b;
+ r = !!a == !!b;
+ r = !!a == !b;
+ r = !a == !!b;
+}