It seems that specifying a location with __at
implicitely makes an unsigned char 16bit at least as far as the compiler is concerned.
sdcc -mpic14 -p16f1718 --use-non-free -Wl-C bug01.c
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8 3.6.0 #9615 (Linux)
The resulting assembler output.
I can no longer reproduce this bug from the current trunk.
The old buggy assembly output was:
And now the new assembly output is:
This bug should be closed.
Last edit: Tom Li 2023-01-03
But why can it no longer be reproduced?
Could this have been fixed by [r11427] ("Merge pic14 branch.") in 2019?