1 // PR c++/86190
2 // { dg-options "-Wsign-conversion -Wsign-compare" }
3 
4 typedef unsigned long sz_t;
5 sz_t s();
f(int i)6 bool f(int i) { return s() < (unsigned long) i; }
f2(int i)7 bool f2(int i) { return s() < static_cast<unsigned long>(i); }
f3(int i)8 bool f3(int i) { return s() < i; } // { dg-warning "comparison of integer expressions of different signedness" }
f4(int i)9 bool f4(int i) { return s() < (long) i; } // { dg-warning "comparison of integer expressions of different signedness" }
f5(short int i)10 bool f5(short int i) { return s() < (int) i; } // { dg-warning "comparison of integer expressions of different signedness" }
f6(signed char i)11 bool f6(signed char i) { return s() < (int) i; } // { dg-warning "comparison of integer expressions of different signedness" }
f7(unsigned char i)12 bool f7(unsigned char i) { return s() < i; }
f8(signed char i)13 bool f8(signed char i) { return s() < i; } // { dg-warning "comparison of integer expressions of different signedness" }
14