From: SourceForge.net <no...@so...> - 2010-01-28 18:36:25
|
Bugs item #2941749, was opened at 2010-01-28 10:36 Message generated for change (Tracker Item Submitted) made by davidegrayson You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2941749&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: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: David Grayson (davidegrayson) Assigned to: Nobody/Anonymous (nobody) Summary: Fatal Compiler Internal Error when casting to pointer Initial Comment: The following code fails to compile for me: struct a { unsigned char b; }; unsigned char __at 1 c; void main() { (*((struct a *)&c)).b; } The code above is in a file called test.c (attached below). I invoked sdcc with the command `sdcc test.c`. My sdcc -v is: SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.0 #5416 (Aug 15 2009) (UNIX) I am running Ubuntu Linux 9.10. The error message I get from sdcc is: test.c:10: error 9: FATAL Compiler Internal Error in file 'SDCCicode.c' line number '1413' : operandOperation invalid operator Contact Author with source code sdcc: SDCCicode.c:1415: operandOperation: Assertion `0' failed. Caught signal 6: SIGABRT There seem to be many workarounds. If you remove the "__at" qualifier, the code compiles. If you use the -> operator it compiles. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2941749&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-07-18 15:22:56
|
Bugs item #2941749, was opened at 2010-01-28 19:36 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2941749&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: C-Front End >Group: fixed >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: David Grayson (davidegrayson) >Assigned to: Maarten Brock (maartenbrock) Summary: Fatal Compiler Internal Error when casting to pointer Initial Comment: The following code fails to compile for me: struct a { unsigned char b; }; unsigned char __at 1 c; void main() { (*((struct a *)&c)).b; } The code above is in a file called test.c (attached below). I invoked sdcc with the command `sdcc test.c`. My sdcc -v is: SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.0 #5416 (Aug 15 2009) (UNIX) I am running Ubuntu Linux 9.10. The error message I get from sdcc is: test.c:10: error 9: FATAL Compiler Internal Error in file 'SDCCicode.c' line number '1413' : operandOperation invalid operator Contact Author with source code sdcc: SDCCicode.c:1415: operandOperation: Assertion `0' failed. Caught signal 6: SIGABRT There seem to be many workarounds. If you remove the "__at" qualifier, the code compiles. If you use the -> operator it compiles. ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2010-07-18 17:22 Message: Fixed in SDCC 2.9.7.#5883. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2941749&group_id=599 |