http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52731
Bug #: 52731 Summary: internal compiler error: in ia64_st_address_bypass_p, at config/ia64/ia64.c:9357 Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: a...@passagen.se Created attachment 27004 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27004 Preprocessed test case Internal compiler error in GCC 4.7.0 on IA64. Fault exists also in older versions of GCC. Target: ia64-unknown-linux-gnu Configured with: /home/user/build/gcc-4.7.0/configure --prefix=/home/user/software --with-gmp=/home/user/software --with-mpfr=/home/user/software --with-mpc=/home/user/software --with-system-libunwind --enable-languages=c,c++ $ gcc -c -O2 ia64_8451.cc ia64_8451.cc: In function 'void fun(long unsigned int)': ia64_8451.cc:16:1: internal compiler error: in ia64_st_address_bypass_p, at config/ia64/ia64.c:9357 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. $ cat ia64_8451.cc char* area; long int area_size; char* base; void fun(unsigned long int addr) { unsigned long int size32 = (addr + 4096 - 1) & ~(4096 - 1); unsigned long int size = size32 * sizeof(unsigned int); if (size > 0) { size = (size + 16384 -1) & ~(16384 - 1); } area_size = size; area = base + size; } $