public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/26882]  New: ICE when using template function with memory attributes
@ 2006-03-27  7:19 gcc-bugzilla at gcc dot gnu dot org
  2006-03-27  7:26 ` [Bug target/26882] " ned at bike-nomad dot com
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: gcc-bugzilla at gcc dot gnu dot org @ 2006-03-27  7:19 UTC (permalink / raw)
  To: gcc-bugs



This program (which has no included files) causes an ICE and a bus error:

--

typedef unsigned char uint8_t ;
typedef unsigned short uint16_t ;
typedef unsigned long uint32_t ;

#define PROGMEM __attribute__((__progmem__))

template<typename T>
T PROGMEM * rom(const T& init)
{
        static T PROGMEM t = init;
        return &t;
}

struct funny
{
    uint8_t a;
    uint16_t b;
    uint32_t c;
};

uint8_t PROGMEM *rom1 = rom((uint8_t)123);

funny f = { 0xBB, 0xCCCC, 0xDDDDEEEE };
funny PROGMEM *rom2 = rom(f);

int main()
{
    *((volatile uint8_t*)0x55) = *rom1;
    *((volatile uint8_t*)0xAA) = rom2->a;
}

bool __cxa_guard_acquire(uint8_t *gv) { return true; }
bool __cxa_guard_release(uint8_t *gv) { return true; }

--

Environment:
System: Darwin Neds-Mini.local 8.5.0 Darwin Kernel Version 8.5.0: Sun Jan 22
10:38:46 PST 2006; root:xnu-792.6.61.obj~1/RELEASE_PPC Power Macintosh powerpc



host: powerpc-apple-darwin8.5.0
build: powerpc-apple-darwin8.5.0
target: avr-unknown-none
configured with:
/opt/local/var/db/dports/build/_Users_ned_src_darwinports_dports_cross_avr-gcc/work/gcc-4.0.2/configure
--prefix=/opt/local --infodir=/opt/local/share/info
--mandir=/opt/local/share/man --target=avr --program-prefix=avr-
--with-included-gettext --enable-obsolete
--with-gxx-include-dir=/opt/local/avr/include/c++/4.0.2/
--enable-languages=c,c++

How-To-Repeat:

Compile the above program. I used the command line:

avr-g++ -mmcu=atmega128 -c -o romtest2.o romtest2.cpp

and got this:

romtest2.cpp: In function 'T* rom(const T&) [with T = uint8_t]':
romtest2.cpp|21| instantiated from here
romtest2.cpp|10| internal compiler error: Bus error


-- 
           Summary: ICE when using template function with memory attributes
           Product: gcc
           Version: 4.0.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ned at bike-nomad dot com
 GCC build triplet: powerpc-apple-darwin8.5.0
  GCC host triplet: powerpc-apple-darwin8.5.0
GCC target triplet: avr-unknown-none


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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-07-25 17:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-27  7:19 [Bug c++/26882] New: ICE when using template function with memory attributes gcc-bugzilla at gcc dot gnu dot org
2006-03-27  7:26 ` [Bug target/26882] " ned at bike-nomad dot com
2006-05-01 15:01 ` ned at bike-nomad dot com
2007-07-25 17:42 ` [Bug target/26882] [AVR][C++] " eweddington at cso dot atmel dot com
2007-07-25 17:42 ` eweddington at cso dot atmel dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).