mirror of
https://github.com/prirun/p50em.git
synced 2026-01-29 04:41:05 +00:00
Fix link fail on x64-64
Weird gcc behavior. Code snippet:
uint16_t data;
char ch;
...
i = (data >> 8) & 0xff;
ch = data & 0xff;
...
fprintf(smlclog, "%s OTA '01%02o line '%02o set special character %d <%02x>\n", smlctimestamp, device, dc[dx].lineno, i, ch);
Output on x86-64 before this change:
17:13:51 OTA '0150 line '02 set special character 3 <ffffffff>
Output on armhf or on x86-64 after this change:
19:05:00.130466808 OTA '0150 line '02 set special character 3 <ff>
WTH? Masking an unsigned with an appropriately sized mask produces a
sign extension?
This commit is contained in:
Reference in New Issue
Block a user