blob: f9f647c9cff7343127c8b4e433ebc8b5a0c5addd [file] [log] [blame]
Daniel Dunbar4fcfde42009-11-08 01:45:36 +00001// RUN: clang-cc -Wparentheses -fsyntax-only -verify %s
Sebastian Redlaee3c932009-10-27 12:10:02 +00002// RUN: clang-cc -Wparentheses -fixit %s -o - | clang-cc -Wparentheses -Werror -
Sebastian Redl9e1d29b2009-10-26 15:24:15 +00003
4// Test the various warnings under -Wparentheses
5void if_assign(void) {
6 int i;
7 if (i = 4) {} // expected-warning {{assignment as a condition}}
8 if ((i = 4)) {}
9}
10
11void bitwise_rel(unsigned i) {
12 (void)(i & 0x2 == 0); // expected-warning {{& has lower precedence than ==}}
13 (void)(0 == i & 0x2); // expected-warning {{& has lower precedence than ==}}
14 (void)(i & 0xff < 30); // expected-warning {{& has lower precedence than <}}
15 (void)((i & 0x2) == 0);
16 (void)(i & (0x2 == 0));
17 // Eager logical op
18 (void)(i == 1 | i == 2 | i == 3);
19 (void)(i != 1 & i != 2 & i != 3);
20}