aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/asan/pr80308.c
blob: bcfa6ae4ab4f7c23b8377f14dcea01f07040afa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* PR sanitizer/80308 */
/* { dg-do run } */

__attribute__((noinline, noclone)) int
foo (char *a)
{
  int i, j = 0;
  asm volatile ("" : "+r" (a) : : "memory");
  for (i = 0; i < 12; i++)
    j += a[i];
  return j;
}

int
main ()
{
  int i, j = 0;
  for (i = 0; i < 4; i++)
    {
      char a[12];
      __builtin_memset (a, 0, sizeof (a));
      j += foo (a);
    }
  return j;
}