/* { dg-do run } */ | |
/* { dg-options "-fsanitize=shift -w -std=c++11" } */ | |
int | |
main () | |
{ | |
int a = -42; | |
a <<= 1; | |
a = -43; | |
a <<= 0; | |
a = -44; | |
a <<= (__SIZEOF_INT__ * __CHAR_BIT__ - 1); | |
a = 32; | |
a <<= (__SIZEOF_INT__ * __CHAR_BIT__ - 3); | |
} | |
/* { dg-output "left shift of negative value -42.*" } */ | |
/* { dg-output "left shift of negative value -43.*" } */ | |
/* { dg-output "left shift of negative value -44.*" } */ | |
/* { dg-output "left shift of 32 by \[0-9]* places cannot be represented in type 'int'" } */ |