view gcc/testsuite/c-c++-common/Wshift-overflow-5.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* PR c++/55095 */
/* { dg-do compile { target int32 } } */
/* { dg-options "-O -Wshift-overflow=2" } */
/* { dg-additional-options "-std=c++11" { target c++ } } */

#define INTM1 (sizeof (int) * __CHAR_BIT__ - 1)
#define LLONGM1 (sizeof (long long) * __CHAR_BIT__ - 1)

int i1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" } */
unsigned u1 = 1 << INTM1; /* { dg-warning "requires 33 bits to represent" } */
long long int l1 = 1LL << LLONGM1; /* { dg-warning "requires 65 bits to represent" } */