From: SourceForge.net <no...@so...> - 2006-06-08 23:48:37
|
Bugs item #1503234, was opened at 2006-06-09 00:48 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1503234&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 Submitted By: Steven Borley (sjborley) Assigned to: Nobody/Anonymous (nobody) Summary: SIGABRT with simple array or struct access Initial Comment: try... volatile int x[2] = { 4,5 }; void main(void) { // volatile int hope; // okay int hope; // not okay hope = x[1]; } then... sdcc -mpic16 -p18f8620 test2.c pic16_aopOp:1302 called for a spillLocation -- assigning WREG instead --- CHECK! gen.c:1304: failed assertion `getSize(sym->type) <= 1' Caught signal 6: SIGABRT sdcc -v SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ ds400/hc08 2.5.6 # (May 18 2006) (UNIX) same error with this... typedef struct { int A; int B; } my_t; volatile my_t foo = { 1,2 }; void main(void) { // volatile int hope; // okay int hope; // not okay hope = foo.A; } If hope is volatile then this compiles. Implies that cause is linked to optimisation. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1503234&group_id=599 |