http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52472
Bug #: 52472
Summary: ICE: in convert_debug_memory_address, at
cfgexpand.c:2491
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Keywords: addr-space, ice-on-invalid-code
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Host: mingw32
Target: avr
typedef unsigned long uint32_t;
typedef unsigned int uint16_t;
extern const __memx unsigned int data[320][12];
#define pgm_read_word_far(addr) \
(__extension__({ \
uint32_t __addr32 = (uint32_t)(addr); \
uint16_t __result; \
__asm__("; much code" \
: "=r" (__result) \
: "r" (__addr32)); \
__result; \
}))
int ice (void)
{
return pgm_read_word_far (0x20000 + (unsigned long) &data[0][0]);
}
== Command Line ==
>> avr-gcc ice-memx.c -S -Os -g3 -v
== ICE ==
ice-memx.c: In function 'ice':
ice-memx.c:18:12: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
ice-memx.c:16:5: internal compiler error: in convert_debug_memory_address, at
cfgexpand.c:2491
== Configure ==
Using built-in specs.
Target: avr
Configured with: ../gcc-trunk/configure --with-gmp=/usr/local
--prefix=/usr/local/avr --target=avr --enable-languages=c,c++ --with-dwarf2
--disable-shared --disable-libada --disable-libssp --disable-nls
Thread model: single
gcc version 4.7.0 20120217 (experimental) (GCC)
GNU C (GCC) version 4.7.0 20120217 (experimental) (avr)
compiled by GNU C version 4.6.2, GMP version 5.0.4, MPFR version 3.1.0, MPC
version 0.9