aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/ubsan/bounds-21.c
blob: b9d9308849f6971a4a75fd40d50539402c514e7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* PR sanitizer/109050 */
/* { dg-do run } */
/* { dg-options "-fsanitize=bounds -fno-sanitize-recover=all" } */

int i;
int foo (void) { return ++i; }

int
main ()
{
  char a[10] = { };
  a[foo ()] = a[foo()] | 'a';
  if (i != 2)
    __builtin_abort ();
  a[foo()] |= 'a';
  if (i != 3)
    __builtin_abort ();
}