all data placed to single .progmem.data section.
test.cpp:
char __attribute__((__progmem__)) Test1[] = "test1";
char const __attribute__((__progmem__)) Test2[] = "test2";

void const * array[] = 
{
    Test1, Test2
};

cmd line:
avr-gcc  -mmcu=atmega8 -fdata-sections -Wall -Os -Wa,-ahlmsd=test.lst -c 
test.cpp -o test.o

listing:
   8                    .global Test1
   9                            .section        .progmem.data,"a",@progbits
  12                    Test1:
  13 0000 7465 7374             .string "test1"
  13      3100 
  14                    .global array
  15                            .section        .data.array,"aw",@progbits
  18                    array:
  19 0000 0000                  .word   Test1
  20 0002 0000                  .word   _ZL5Test2
  21                            .section        .progmem.data
  24                    _ZL5Test2:
  25 0006 7465 7374             .string "test2"
  25      3200 

here array placed into unique section .data.array, while Test1 and Test2 into
single section .progmem.data


-- 
           Summary: C++, -fdata-sections not works with .progmem data
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sb-sf at users dot sourceforge dot net
  GCC host triplet: x86
GCC target triplet: AVR


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40113

Reply via email to