| /* PR c/81417 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-Wsign-compare -fdiagnostics-show-caret" } */ |
| |
| unsigned int |
| f0 (int x, unsigned int y) |
| { |
| return x ? y : -1; /* { dg-warning "18:operand of '\\?:' changes signedness from 'int' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return x ? y : -1; |
| ^~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| unsigned int |
| f1 (int xxx, unsigned int yyy) |
| { |
| return xxx ? yyy : -1; /* { dg-warning "22:operand of '\\?:' changes signedness from 'int' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return xxx ? yyy : -1; |
| ^~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| unsigned int |
| f2 (int xxx, unsigned int yyy) |
| { |
| return xxx ? -1 : yyy; /* { dg-warning "16:operand of '\\?:' changes signedness from 'int' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return xxx ? -1 : yyy; |
| ^~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| unsigned int |
| f3 (unsigned int yyy) |
| { |
| return yyy ?: -1; /* { dg-warning "17:operand of '\\?:' changes signedness from 'int' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return yyy ?: -1; |
| ^~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| unsigned int |
| f4 (int xxx, unsigned yyy, short uuu) |
| { |
| return xxx ? yyy : uuu; /* { dg-warning "22:operand of '\\?:' changes signedness from 'short int' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return xxx ? yyy : uuu; |
| ^~~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| unsigned int |
| f5 (int xxx, unsigned yyy, short uuu) |
| { |
| return xxx ? uuu : yyy; /* { dg-warning "16:operand of '\\?:' changes signedness from 'short int' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return xxx ? uuu : yyy; |
| ^~~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| unsigned int |
| f6 (int xxx, unsigned yyy, signed char uuu) |
| { |
| return xxx ? yyy : uuu; /* { dg-warning "22:operand of '\\?:' changes signedness from 'signed char' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return xxx ? yyy : uuu; |
| ^~~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| unsigned int |
| f7 (int xxx, unsigned yyy, signed char uuu) |
| { |
| return xxx ? uuu : yyy; /* { dg-warning "16:operand of '\\?:' changes signedness from 'signed char' to 'unsigned int'" } */ |
| /* { dg-begin-multiline-output "" } |
| return xxx ? uuu : yyy; |
| ^~~ |
| { dg-end-multiline-output "" } */ |
| } |