| /* PR c++/70336 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-Wconversion" } */ |
| |
| void |
| f1 (unsigned char * x, int y, int z) |
| { |
| x[z / 8] |= (unsigned char) (0x80 >> y); /* { dg-bogus "may alter its value" } */ |
| } |
| |
| unsigned char |
| f2 (unsigned char x, int y) |
| { |
| x = x | (unsigned char) (0x80 >> y); /* { dg-bogus "may alter its value" } */ |
| return x; |
| } |
| |
| unsigned char |
| f3 (unsigned char x, int y) |
| { |
| x = x | (unsigned char) (y & 255); /* { dg-bogus "may alter its value" } */ |
| return x; |
| } |
| |
| unsigned char |
| f4 (unsigned char x, unsigned char y) |
| { |
| x = x | (unsigned char) (y & 255); /* { dg-bogus "may alter its value" } */ |
| return x; |
| } |
| |
| unsigned char |
| f5 (unsigned char x, int y) |
| { |
| x = (unsigned char) (y & 255); /* { dg-bogus "may alter its value" } */ |
| return x; |
| } |