1 /* PR c++/55095 */
2 /* { dg-do compile { target int32 } } */
3 /* { dg-options "-Wshift-overflow=2" } */
4 /* { dg-additional-options "-std=c++11" { target c++ } } */
5 
6 int i00 = 0b1 << 31; /* { dg-warning "requires 33 bits to represent" } */
7 int i01 = 0b10 << 30; /* { dg-warning "requires 33 bits to represent" } */
8 int i02 = 0b100 << 29; /* { dg-warning "requires 33 bits to represent" } */
9 int i03 = 0b1000 << 28; /* { dg-warning "requires 33 bits to represent" } */
10 int i04 = 0b10000 << 27; /* { dg-warning "requires 33 bits to represent" } */
11 int i05 = 0b100000 << 26; /* { dg-warning "requires 33 bits to represent" } */
12 int i06 = 0b1000000 << 25; /* { dg-warning "requires 33 bits to represent" } */
13 int i07 = 0b10000000 << 24; /* { dg-warning "requires 33 bits to represent" } */
14 int i08 = 0b100000000 << 23; /* { dg-warning "requires 33 bits to represent" } */
15 int i09 = 0b1000000000 << 22; /* { dg-warning "requires 33 bits to represent" } */
16 int i10 = 0b10000000000 << 21; /* { dg-warning "requires 33 bits to represent" } */
17 int i11 = 0b100000000000 << 20; /* { dg-warning "requires 33 bits to represent" } */
18 int i12 = 0b1000000000000 << 19; /* { dg-warning "requires 33 bits to represent" } */
19 int i13 = 0b10000000000000 << 18; /* { dg-warning "requires 33 bits to represent" } */
20 int i14 = 0b100000000000000 << 17; /* { dg-warning "requires 33 bits to represent" } */
21 int i15 = 0b1000000000000000 << 16; /* { dg-warning "requires 33 bits to represent" } */
22 int i16 = 0b10000000000000000 << 15; /* { dg-warning "requires 33 bits to represent" } */
23 int i17 = 0b100000000000000000 << 14; /* { dg-warning "requires 33 bits to represent" } */
24 int i18 = 0b1000000000000000000 << 13; /* { dg-warning "requires 33 bits to represent" } */
25 int i19 = 0b10000000000000000000 << 12; /* { dg-warning "requires 33 bits to represent" } */
26 int i20 = 0b100000000000000000000 << 11; /* { dg-warning "requires 33 bits to represent" } */
27 int i21 = 0b1000000000000000000000 << 10; /* { dg-warning "requires 33 bits to represent" } */
28 int i22 = 0b10000000000000000000000 << 9; /* { dg-warning "requires 33 bits to represent" } */
29 int i23 = 0b100000000000000000000000 << 8; /* { dg-warning "requires 33 bits to represent" } */
30 int i24 = 0b1000000000000000000000000 << 7; /* { dg-warning "requires 33 bits to represent" } */
31 int i25 = 0b10000000000000000000000000 << 6; /* { dg-warning "requires 33 bits to represent" } */
32 int i26 = 0b100000000000000000000000000 << 5; /* { dg-warning "requires 33 bits to represent" } */
33 int i27 = 0b1000000000000000000000000000 << 4; /* { dg-warning "requires 33 bits to represent" } */
34 int i28 = 0b10000000000000000000000000000 << 3; /* { dg-warning "requires 33 bits to represent" } */
35 int i29 = 0b100000000000000000000000000000 << 2; /* { dg-warning "requires 33 bits to represent" } */
36 int i30 = 0b1000000000000000000000000000000 << 1; /* { dg-warning "requires 33 bits to represent" } */
37 int i31 = (int) 0b10000000000000000000000000000000u << 1; /* { dg-warning "requires 33 bits to represent" } */
38