| /* PR c/59846 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-Wlogical-op -Wtype-limits" } */ |
| |
| _Bool |
| fn1 (unsigned int p) |
| { |
| return 0ULL > p; /* { dg-warning "15:comparison is always false due to limited range of data type" } */ |
| } |
| |
| _Bool |
| fn2 (unsigned int p) |
| { |
| return 0ULL <= p; /* { dg-warning "15:comparison is always true due to limited range of data type" } */ |
| } |
| |
| _Bool |
| fn3 (unsigned int p) |
| { |
| return p >= 0U; /* { dg-warning "12:comparison of unsigned expression in '>= 0' is always true" } */ |
| } |
| |
| _Bool |
| fn4 (unsigned int p) |
| { |
| return p < 0U; /* { dg-warning "12:comparison of unsigned expression in '< 0' is always false" } */ |
| } |
| |
| _Bool |
| fn5 (_Bool p) |
| { |
| return p || !p; /* { dg-warning "12:logical" } */ |
| } |
| |
| _Bool |
| fn6 (_Bool p) |
| { |
| return p && !p; /* { dg-warning "12:logical" } */ |
| } |