summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/debug/pr49522.c
blob: 3fa3bfb0e92b99f3ced885ea8d8400b72c6f728a (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* PR debug/49522 */
/* { dg-do compile } */
/* { dg-options "-fcompare-debug" } */

int val1 = 0L;
volatile int val2 = 7L;
long long val3;
int *ptr = &val1;

static int
func1 ()
{
  return 0;
}

static short int
func2 (short int a, unsigned int b)
{
  return !b ? a : a >> b;
}

static unsigned long long
func3 (unsigned long long a, unsigned long long b)
{
  return !b ? a : a % b;
}

void
func4 (unsigned short arg1, int arg2)
{
  for (arg2 = 0; arg2 < 2; arg2++)
    {
      *ptr = func3 (func3 (10, func2 (val3, val2)), val3);
      for (arg1 = -14; arg1 > 14; arg1 = func1 ())
	{
	  *ptr = -1;
	  if (foo ())
	    ;
	}
    }
}