summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-3165.c
blob: d222ffc91228b6ce3c920ce4eb1c80927ec0c0cc (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
/*
   bug-3165.c
   a crash in z80 code generation on __sfr right subtraction operand.
 */

#include <testfwk.h>

#if !defined(PORT_HOST) && !defined(__SDCC_stm8) && !defined(__SDCC_hc08) && !defined(__SDCC_s08) && !defined(__SDCC_mos6502) && !defined(__SDCC_mos65c02) && !defined(__SDCC_tlcs90) && !defined(__SDCC_f8)

unsigned char effect_y_line;
#if defined(__SDCC_sm83)
volatile __sfr __at(0xff02) reg_SCY;
volatile __sfr __at(0xff04) reg_LY;
#elif defined(__SDCC_mcs51) || defined(__SDCC_ds390)
volatile __sfr __at(0x82) reg_SCY;
volatile __sfr __at(0x84) reg_LY;
#else
volatile __sfr __at(0x02) reg_SCY;
volatile __sfr __at(0x04) reg_LY;
#endif

void f(void) {
    effect_y_line = 10;
    reg_SCY = effect_y_line - reg_LY;
}
#endif

void
testBug(void)
{
}