Hi,

I noticed a strange behaviour when you place a zero length array in 
'nocommon'. For example, if you use something like

  const unsigned char TEST_C[0];

it compiles (assuming NO settings like -ffunction-sections -Wl,--gc-sections 
-Wl,--relax) to

  *(COMMON)
   COMMON    0x000000000080007e    0x23 ./src/femtoos_shared.o
             0x000000000080007e             TEST_C
             0x000000000080007e             tcb00

so indeed it takes no space. However, if you use:

  const unsigned char TEST_C[0] __attribute__ ((nocommon));

you get

   .bss      0x0000000000800062    0x1d ./src/femtoos_shared.o
             0x0000000000800076             TEST_C
             0x0000000000800077             Stack00

and now it starts taking one byte of space. It looks like it is
somehow switching back to "old C" behaviour. (I know these
listings are not entirely conclusive, but i verified it is indeed 
one byte extra)

Does anybody understands this?

Ruud


_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to