aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/c-c++-common/tsan/pr119801.c
blob: d3a6bb4549efa1de90309915f4cdf9bc271da31c (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
/* PR sanitizer/119801 */
/* { dg-do compile } */
/* { dg-options "-fsanitize=thread" } */

[[gnu::noipa]] int
bar (int *p)
{
  return ++*p;
}

int
foo (int *p)
{
  ++*p;
  [[gnu::musttail]] return bar (p);
}

[[gnu::noinline]] int
baz (int x)
{
  if (x < 10)
    return x;
  [[gnu::musttail]] return baz (x - 2);
}