| // RUN: %clang_cc1 -fsyntax-only -verify %s -DSILENCE |
| // RUN: %clang_cc1 -fsyntax-only -verify %s -Wbitwise-op-parentheses |
| // RUN: %clang_cc1 -fsyntax-only -verify %s -Wparentheses |
| // RUN: %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits %s -Wbitwise-op-parentheses 2>&1 | FileCheck %s |
| |
| #ifdef SILENCE |
| // expected-no-diagnostics |
| #endif |
| |
| void bitwise_op_parentheses(unsigned i) { |
| (void)(i & i | i); |
| #ifndef SILENCE |
| // expected-warning@-2 {{'&' within '|'}} |
| // expected-note@-3 {{place parentheses around the '&' expression to silence this warning}} |
| #endif |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:10-[[@LINE-5]]:10}:"(" |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:15-[[@LINE-6]]:15}:")" |
| |
| (void)(i | i & i); |
| #ifndef SILENCE |
| // expected-warning@-2 {{'&' within '|'}} |
| // expected-note@-3 {{place parentheses around the '&' expression to silence this warning}} |
| #endif |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:14-[[@LINE-5]]:14}:"(" |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:19-[[@LINE-6]]:19}:")" |
| |
| (void)(i ^ i | i); |
| #ifndef SILENCE |
| // expected-warning@-2 {{'^' within '|'}} |
| // expected-note@-3 {{place parentheses around the '^' expression to silence this warning}} |
| #endif |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:10-[[@LINE-5]]:10}:"(" |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:15-[[@LINE-6]]:15}:")" |
| |
| (void)(i | i ^ i); |
| #ifndef SILENCE |
| // expected-warning@-2 {{'^' within '|'}} |
| // expected-note@-3 {{place parentheses around the '^' expression to silence this warning}} |
| #endif |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:14-[[@LINE-5]]:14}:"(" |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:19-[[@LINE-6]]:19}:")" |
| |
| (void)(i & i ^ i); |
| #ifndef SILENCE |
| // expected-warning@-2 {{'&' within '^'}} |
| // expected-note@-3 {{place parentheses around the '&' expression to silence this warning}} |
| #endif |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:10-[[@LINE-5]]:10}:"(" |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:15-[[@LINE-6]]:15}:")" |
| |
| (void)(i ^ i & i); |
| #ifndef SILENCE |
| // expected-warning@-2 {{'&' within '^'}} |
| // expected-note@-3 {{place parentheses around the '&' expression to silence this warning}} |
| #endif |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-5]]:14-[[@LINE-5]]:14}:"(" |
| // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:19-[[@LINE-6]]:19}:")" |
| } |