Bugs item #3558402, was opened at 2012-08-16 04:43
Message generated for change (Comment added) made by epetrich
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3558402&group_id=599
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: z80 port
>Group: fixed
>Status: Closed
>Resolution: Fixed
Priority: 5
Private: No
Submitted By: Philipp Klaus Krause (spth)
>Assigned to: Erik Petrich (epetrich)
Summary: Compiler crash
Initial Comment:
The attached code nakes sdcc 3.2.1 #8062 invoked using --std-c99 -mz80 --opt-code-size test.c crash giving
test.c:36: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
test.c:42: error 9: FATAL Compiler Internal Error in file 'gen.c' line number '1555' : Symbol in register, but no register assigned.
Contact Author with source code
Symbol iTemp21 at ic 18.
Caught signal 11: SIGSEGV
This seems to be some weird interaction of register allocation and builtin functions.
Philipp
----------------------------------------------------------------------
>Comment By: Erik Petrich (epetrich)
Date: 2012-09-17 00:18
Message:
I believe this is fixed with revision #8110.
The error was occurring during the dry run pass. Although
assign_operands_for_cost() ensures that all of the operands for the
built-in SENDs are updated for the contemplated register assignment,
inst_sane() was only called for the first SEND. iTemp21 was used the second
SEND and was only half assigned to registers, leaving the code generator
bewildered.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3558402&group_id=599
|