1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
cc65/test/val/bug1075.c

32 lines
598 B
C
Raw Normal View History

2020-07-13 13:12:30 +00:00
/* bug #1075 Internal compiler error */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
2020-07-13 13:12:30 +00:00
long rhs;
int test(void)
2020-07-13 13:12:30 +00:00
{
2022-04-17 14:07:52 +00:00
/* the whole lhs is errorneously treated as an absolute address (integer
2020-07-13 13:12:30 +00:00
constant) neglecting its dereference */
return *(char *)0xD77C + rhs;
}
int res;
int main(void)
{
memset(*(char *)0xD76C, 11, 0x80);
rhs = 0x10;
*(char *)(0xD77C + rhs) = 13;
*(char *)0xD77C = 23;
*(char *)0xD78C = 42;
res = test();
printf("res: %d\n", res);
if (res != (23 + 0x10)) {
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}