summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/ubsan/cxx11-shift-2.C
blob: d104ead41758ccd2d66d437cdab357811fcc5851 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* { 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'" } */