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
