summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug1839321.c
blob: 013f3c8f64187a1b86a1f2e9d61dadd593a1c10e (plain) (blame)
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
/*
    bug 1839321
*/

#include <testfwk.h>

__xdata char Global = 2;

__code struct Value {
  char __xdata * Name[2];
} Value_1 = {{&Global, 0}},
  Value_2 = {{&Global, 0}};

char i = 1;

// note: this function expects its first parameter to be passed in
//        2 bytes on **stack** (not registers)
char
bar(char __xdata* __code* ptr, ...)
{
  return **ptr;
}

void
foo (void)
{
}


void
testBug(void)
{
  ASSERT (bar (i ? Value_1.Name : Value_2.Name) == 2);
}