This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/40112] New: C++, __attribute__((__progmem__)) lost in typedefs.


data incorrectly placed into .data or .rodata instead of .progmem. This makes
impossible using avr-libc predefined types (avr/pgmspace.h).

test.cpp:
char __attribute__((__progmem__)) Test1[] = "test1";
char const __attribute__((__progmem__)) Test2[] = "test2";

typedef char __attribute__((__progmem__)) prog_char;
prog_char Test3[] = "Test3";
prog_char const Test4[] = "Test4";

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

listing:
   8                    .global Test1
   9                            .section        .progmem.data,"a",@progbits
  12                    Test1:
  13 0000 7465 7374             .string "test1"
  13      3100 
  14                    .global Test3
  15                            .data
  18                    Test3:
  19 0000 5465 7374             .string "Test3"
  19      3300 
  20                    .global array
  23                    array:
  24 0006 0000                  .word   Test1
  25 0008 0000                  .word   _ZL5Test2
  26 000a 0000                  .word   Test3
  27 000c 0000                  .word   _ZL5Test4
  28                            .section        .progmem.data
  31                    _ZL5Test2:
  32 0006 7465 7374             .string "test2"
  32      3200 
  33                            .data
  36                    _ZL5Test4:
  37 000e 5465 7374             .string "Test4"
  37      3400 

First two forms leads to correct placement, but generates incorrect warning
(bug 34734)


-- 
           Summary: C++, __attribute__((__progmem__)) lost in typedefs.
           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=40112


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]