summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug2761883.c
blob: c3a4b742dcde6881c32b3426cea5289b9bb8a0fe (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
/*
   bug2761883.c
 */

#include <testfwk.h>

#ifdef __SDCC_STACK_AUTO
#define __xdata
#endif

volatile char __xdata xx1;
volatile int __xdata xx2;

extern void func1 (char __xdata p1, int __xdata p2);

void
testBug (void)
{
  func1 (14, 16);     // this would pass p2 in data memory
  ASSERT (xx1 == 14);
  ASSERT (xx2 == 16);
}

void
func1 (char __xdata p1, int __xdata p2)
{
  xx1 = p1;
  xx2 = p2;           // while this tried to get it from xdata
}