Oh, I forgot to add: if automatics cannot fit into registers they go onto a stack frame... Some might assume all automatics go onto the frame but GCC doesn't.
Cheers! ----------- Larry Barello www.barello.net | -----Original Message----- | From: [EMAIL PROTECTED] [mailto:avr-chat- | [EMAIL PROTECTED] On Behalf Of Larry Barello | Sent: Thursday, December 08, 2005 5:06 PM | To: [EMAIL PROTECTED]; [email protected] | Subject: RE: [avr-chat] Strange struct problem | | You are declaring the data as automatic. GCC is very clever and puts | automatic variables into registers unless you either a) take an address of | them, b) declare too many (or too big) or c) set optimization low. | | I ran across this with a boot loader I was writing. I wanted to save a 24 | bit address in a struct (rampz + address) and the resulting code was | seriously broken (actually, the compiler would crash). In short, your | automatic variables that are structs or unions need to fit into one of the | normal sizes: byte, word, long, or double long. | | When they do fit, spectacular code will be generated. | | ----------- | Larry Barello | www.barello.net | _______________________________________________ AVR-chat mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-chat
