aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/ubsan/c-shift-1.c
blob: f88ee2de3793b012ac85903b017910cd4b5ae941 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* { dg-do compile } */
/* { dg-options "-fsanitize=shift -w" } */
/* { dg-shouldfail "ubsan" } */

int x;
int
main (void)
{
  /* None of the following should pass.  */
  int A[1 >> -1] = { 0 };    /* { dg-error "variable-sized object may not be initialized" } */
  int B[-1 >> -1] = { 0 };   /* { dg-error "variable-sized object may not be initialized" } */
  int D[1 << -1] = { 0 };    /* { dg-error "variable-sized object may not be initialized" } */
  int E[-1 << -1] = { 0 };   /* { dg-error "variable-sized object may not be initialized" } */
  int F[-1 >> 200] = { 0 };  /* { dg-error "variable-sized object may not be initialized" } */
  int G[1 << 200] = { 0 };   /* { dg-error "variable-sized object may not be initialized" } */

  return 0;
}