]> granicus.if.org Git - clang/commit
[Sema] Disable -Wbitwise-op-parentheses and -Wlogical-op-parentheses by default
authorFangrui Song <maskray@google.com>
Fri, 2 Aug 2019 16:31:38 +0000 (16:31 +0000)
committerFangrui Song <maskray@google.com>
Fri, 2 Aug 2019 16:31:38 +0000 (16:31 +0000)
commitfe10d89672d3b106775524852cf612131a7e4ea6
tree569f408963db72f241d881dd60faae979cbefefd
parent91a14f64f769263deea649999cea32ea5bfa14cd
[Sema] Disable -Wbitwise-op-parentheses and -Wlogical-op-parentheses by default

Summary:
The -Wparentheses warnings are enabled by default in clang but they are under
-Wall in gcc (gcc/c-family/c.opt). Some of the operator precedence warnings are
oftentimes criticized as noise (clang: default; gcc: -Wall). If a warning is
very controversial, it is probably not a good idea to enable it by default.
This patch disables the rather annoying ones:

-Wbitwise-op-parentheses, e.g. i & i | i
-Wlogical-op-parentheses, e.g. i && i || i

After this change:

```
* = enabled by default

-Wall
  -Wparentheses
    -Wlogical-op-parentheses
    -Wlogical-not-parentheses*
    -Wbitwise-op-parentheses
    -Wshift-op-parentheses*
    -Woverloaded-shift-op-parentheses*
    -Wparentheses-equality*
    -Wdangling-else*
```

-Woverloaded-shift-op-parentheses is typically followed by overload
resolution failure. We can instead improve the error message, and
probably delete -Woverloaded-shift-op-parentheses in the future. Keep it
for now because it gives some diagnostics.

Reviewers: akyrtzi, jyknight, rtrieu, rsmith, aaron.ballman

Reviewed By: aaron.ballman

Subscribers: dexonsmith, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65192

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@367690 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/DiagnosticSemaKinds.td
test/Sema/bitwise-op-parentheses.c [new file with mode: 0644]
test/Sema/logical-op-parentheses.c [new file with mode: 0644]
test/Sema/parentheses.c
test/SemaCXX/parentheses.cpp