2 /* { dg-do compile { target int32 } } */
3 /* { dg-options "-O -Wshift-overflow=2" } */
4 /* { dg-additional-options "-std=c++11" { target c++ } } */
6 #define INTM1 (sizeof (int) * __CHAR_BIT__ - 1)
7 #define LLONGM1 (sizeof (long long) * __CHAR_BIT__ - 1)
9 int i1
= 1 << INTM1
; /* { dg-warning "requires 33 bits to represent" } */
10 unsigned u1
= 1 << INTM1
; /* { dg-warning "requires 33 bits to represent" } */
11 long long int l1
= 1LL << LLONGM1
; /* { dg-warning "requires 65 bits to represent" } */