I was happily compiling FUZIX with #10438, when i decided to update to today's #10444:
~/FUZIX/Applications/V7/cmd$ sdcc -mz80 -I/opt/fcc/include/ -c ed.c
...
ed.c:834: error 9: FATAL Compiler Internal Error in file 'gen.c' line number '1618' : Symbol in register, but no register assigned.
Contact Author with source code
Symbol iTemp4 at ic 7.
ed.c:834: error 9: FATAL Compiler Internal Error in file 'gen.c' line number '1618' : Symbol in register, but no register assigned.
Contact Author with source code
Symbol iTemp4 at ic 7.
ed.c:834: error 9: FATAL Compiler Internal Error in file 'gen.c' line number '605' : code generator internal error
Contact Author with source code
Caught signal 11: SIGSEGV
$ sdcc -v
SDCC : mcs51/z80/z180/r2k/r3ka/gbz80/tlcs90/ds390/pic16/pic14/TININative/ds400/hc08/s08/stm8 3.7.1 #10443 (Linux)
published under GNU General Public License (GPL)
it says #10443 while it should say #10444.
To get the include in /opt/fcc/include/ , you need to build FUZIX ltools (see root's Makefile).
Ok, i bisected it down to #10442: that is the revision that introduced the above ICE - hope that helps.
BTW it's helpful if you run the app through sdcc as a C pre-processor and capture the pre-processor output and attach it. That allows the maintainers to just feed it into sdcc and debug it without having the relevant environment.
Small code sample to reproduce this issue:
Philipp
The small reproduce compiles fine for stm8 and mcs51. This seems to be a z80-specific issue; probably a preexisting one triggered by the changes in [10442].
Philipp
Fixed in [r10445].
Philipp