summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/xstormy16/bp.c
blob: 26ca6a3b4ad1ddf5e9b864f9ece61d67d79933be (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
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-final { scan-assembler "b\[np\] " } } */

#define a_val (*((volatile unsigned char *) 0x7f14))
#define b_val (*((volatile unsigned char *) 0x7f10))

unsigned char * a_ptr = (unsigned char *) 0x7f14;
unsigned char * b_ptr = (unsigned char *) 0x7f10;

int
foo (void)
{
  if (a_val & 0x08)
    {
      if (b_val & 0x08)
	return -1;

      return 0;
    }

  return -1;
}

int
bar (void)
{
  *a_ptr = 0x08;
  *b_ptr = 0xf7;

  return foo ();
}