Hi, all.

I'm seeing an "Internal compiler error" trying to build some TinyOS code with a
CVS build of Mspgcc, latest as of 6/17/2008. I'm using gcc 3.2.3 (mspgcc
3.3). Here's the session:

$ /usr/msp430/lib/gcc-lib/msp430/3.2.3/cc1   code.c -mmcu=msp430x149
code.c: In function `PropagationMsgPoolP___0___Vector___get':
code.c:6863: Internal compiler error in gen_lowpart, at emit-rtl.c:1197
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
$ 

This doesn't appear to be a new issue, since I've seen mentions of it in the
lists. GCC seems to have fixed this back in GCC 3.3, but since the stable branch
of Mspgcc hasn't progressed to 3.3, this is not useful. Using the Mspgcc port
for gcc 3.3.6 lets me build the code, but produces code that doesn't work due to
a different bug that surfaced in 3.3.

A preprocessed file that triggers the bug can be found at

http://www.cds.caltech.edu/~dkogan/code.c

Note that this is generated by TinyOS, and is thus very long and unreadable. 

I also looked at the offending code. The line that GCC is complaining about is
the last line in this snippet:

typedef struct { char data[1]; } __attribute__((packed)) nx_uint8_t;
typedef struct message_t {
  nx_uint8_t header[...];
  nx_uint8_t data[28];
  nx_uint8_t footer[...];
  nx_uint8_t metadata[...];
} __attribute__((packed)) message_t;
message_t PropagationMsgPoolP___0___data[10];
return &PropagationMsgPoolP___0___data[idx];


This may not actually be the issue, though, since moving the code around changes
the reported error. Gcc actually generates a segfault at times. Does anybody
have any ideas? Currently I don't have a useable compiler. :(

Dima

        

Reply via email to