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: unassig...@gcc.gnu.org ReportedBy: g...@gcc.gnu.org CC: eric.wedding...@atmel.com 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