| /* PR c/60036 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-Wconversion" } */ |
| |
| extern int fn (void); |
| |
| void |
| foo (int i) |
| { |
| unsigned int f = 9; |
| |
| /* Don't warn on these. */ |
| f += fn () || i; |
| f += fn () && i; |
| f += ! fn (); |
| f -= fn () == i; |
| f |= fn () != i; |
| f &= fn () < i; |
| f ^= fn () > i; |
| f &= fn () <= i; |
| f ^= fn () >= i; |
| |
| /* But warn on the following. */ |
| f += fn (); /* { dg-warning "conversion" } */ |
| f += fn () | i; /* { dg-warning "conversion" } */ |
| f += fn () & i; /* { dg-warning "conversion" } */ |
| f += fn () ^ i; /* { dg-warning "conversion" } */ |
| } |