summaryrefslogtreecommitdiff
path: root/support/regression/tests/bug-3661.c
blob: 8233119f931218635e641e4c15af48ea2087c3a4 (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
/* bug-3661.c
   An issue in arithmetic in the Rabbit assembler.
*/

#include <testfwk.h>

#if defined(__SDCC_z80) || defined(__SDCC_z180) || defined(__SDCC_r2k) || defined(__SDCC_r2ka) || defined(__SDCC_r3ka) || defined(__SDCC_sm83)
unsigned char f(void) __naked __sdcccall(1)
{
__asm
	ld	a, #(0x8000 >> 15)
	ret
__endasm;
}
#else
unsigned char f(void)
{
	return(1);
}
#endif

void
testBug (void)
{
	ASSERT (f() == 1);
}