Thanks for the update. We'll keep an eye on this and make a new build once there is a new version to test with.
Just subscribing to this ticket
Thank you!
Thank you!
FATAL Compiler .. Error ... SDCCgenconstprop.cc line 1402
FATAL Compiler Internal Error .. 'gen.c' line number '1282' (sm83, z80)
I stumbled across this issue recently, though in a slightly different form. It was with passing members of a struct that was a pointer. The things below make me wonder if this issue is specific to passing dereferenced pointer values with varargs. Context: typedef struct rtc_data_t { uint16_t day; uint8_t hour; uint8_t min; uint8_t sec; } rtc_data_t; rtc_data_t rtc; This produces output as if it is ignoring the casting to (uint8_t) and so every other %hd is zero instead of expected value printf("Day:...
HOME does have an explicit intended purpose which is not ambiguous, it is described in the SDCC manual: to locate code in a non-banked common area so it is always accessible. https://sdcc.sourceforge.net/doc/sdccman.pdf#subsubsection.4.1.3.2 Bankswitching -> Software Normally all functions you write end up in the segment CSEG. If you want a function explicitly to reside in the common area put it in segment HOME. This applies for instance to interrupt service routines as they should not be banked...