/* PR c/60087 */ /* { dg-do compile } */ /* { dg-options "-Wsign-compare" } */ void foo (unsigned int ui, int i) { const unsigned char uc = 0; _Bool b; b = 0 != ~uc; /* { dg-warning "9:promoted ~unsigned is always non-zero" } */ b = 2 != ~uc; /* { dg-warning "9:comparison of promoted ~unsigned with constant" } */ b = uc == ~uc; /* { dg-warning "10:comparison of promoted ~unsigned with unsigned" } */ b = i == ui; /* { dg-warning "9:comparison between signed and unsigned integer expressions" } */ }