1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 23:29:39 +00:00
cc65/test/val/bug327.c

35 lines
507 B
C
Raw Normal View History

2020-07-09 14:17:31 +00:00
/* bug #327 - Promoting u8 to s16 gives wrong result */
#include <stdio.h>
#include <stdint.h>
static const uint8_t arr[2] = {
0,
255
};
static int16_t get16() {
return -arr[1];
}
static int16_t get16_2() {
return -(int16_t) arr[1];
}
char res = 0;
int main() {
printf("Value %d, should be -255\n", get16());
printf("Value %d, should be -255\n", get16_2());
if (get16() != -255) {
res++;
}
if (get16_2() != -255) {
res++;
}
return res;
}