summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-2881.c
blob: 6ccbb318b4304cdabf19208df59ec603b4cce854 (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
/*
   bug-2881.c
   stack pointer adjustment code overwrote register parameter.
 */

#include <testfwk.h>

#if !defined(__SDCC_z80) && !defined(__SDCC_z180) && !defined(__SDCC_r2k) && !defined(__SDCC_r3ka) && !defined(__SDCC_tlcs90) && !defined(__SDCC_ez80_z80)
#define __z88dk_fastcall
#endif

void g(void *p)
{
    p;
}

int f(int test) __z88dk_fastcall
{
    char buffer[10];
    g(buffer);
    return test + test;
}

void
testBug(void)
{
    ASSERT(f(21) == 42);
}