OSDN Git Service

2010-06-24 Andi Kleen <ak@linux.intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / c-c++-common / warn-ommitted-condop.c
1 /* { dg-options "-Wparentheses" } */
2
3 extern void f2 (int);
4
5 void bar (int x, int y, int z)
6 {
7 #define T(op) f2 (x op y ? : 1) 
8 #define T2(op) f2 (x op y ? 2 : 1) 
9
10   T(<); /* { dg-warning "omitted middle operand" } */
11   T(>); /* { dg-warning "omitted middle operand" } */
12   T(<=); /* { dg-warning "omitted middle operand" } */
13   T(>=); /* { dg-warning "omitted middle operand" } */
14   T(==); /* { dg-warning "omitted middle operand" } */
15   T(!=); /* { dg-warning "omitted middle operand" } */
16   T(||); /* { dg-warning "omitted middle operand" } */
17   T(&&); /* { dg-warning "omitted middle operand" } */
18   f2 (!x ? : 1);  /* { dg-warning "omitted middle operand" } */
19   T2(<); /* { dg-bogus "omitted middle operand" } */
20   T2(>); /* { dg-bogus "omitted middle operand" } */
21   T2(==); /* { dg-bogus "omitted middle operand" } */
22   T2(||); /* { dg-bogus "omitted middle operand" } */
23   T2(&&); /* { dg-bogus "omitted middle operand" } */
24   T(+); /* { dg-bogus "omitted middle operand" } */
25   T(-); /* { dg-bogus "omitted middle operand" } */
26   T(*); /* { dg-bogus "omitted middle operand" } */
27   T(/); /* { dg-bogus "omitted middle operand" } */
28   T(^); /* { dg-bogus "omitted middle operand" } */
29 }