float h(float); int g(); // K&R declaration void f() { 0 ? g(h(0)) + 1 : g(h(0)) + 1; }
This fails to compile on SDCC with Caught signal 11: SIGSEGV. Tested on commit 11647.
Caught signal 11: SIGSEGV
Wiki: SDCC-STD-UX
A few months ago, support for such declarations was improved, though not fully implemented yet. At least we now get a proper error message:
hilipp@notebook6:/tmp$ /home/philipp/sdcc-trunk/sdcc/src/sdcc -I/home/philipp/sdcc-trunk/sdcc/device/include test.c test.c:2: warning 283: function declarator with no prototype test.c:4: warning 283: function declarator with no prototype test.c:6: error 9: FATAL Compiler Internal Error in file 'SDCCast.c' line number '983' : Setting of register parameter vs. other parameter not yet implemented for functions without prototype. Contact Author with source code
Log in to post a comment.
A few months ago, support for such declarations was improved, though not fully implemented yet. At least we now get a proper error message: