http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48381
Summary: internal compiler error: in check_allocation, at ira.c:2094 Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: reg...@cs.utah.edu CC: cheny...@cs.utah.edu Host: i686-pc-linux-gnu Target: i686-pc-linux-gnu Build: i686-pc-linux-gnu regehr@home:~/volatile/bugs/tmp008$ current-gcc -v Using built-in specs. COLLECT_GCC=current-gcc COLLECT_LTO_WRAPPER=/mnt/z/z/compiler-install/gcc-r171761-install/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ../configure --with-libelf=/usr/local --enable-lto --prefix=/mnt/z/z/compiler-install/gcc-r171761-install --program-prefix=r171761- --enable-languages=c,c++ Thread model: posix gcc version 4.7.0 20110330 (experimental) (GCC) regehr@home:~/volatile/bugs/tmp008$ current-gcc -Os small.c -w bad allocation for 78 and 61 small.c: In function ‘func_23’: small.c:52:1: internal compiler error: in check_allocation, at ira.c:2094 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. regehr@home:~/volatile/bugs/tmp008$ cat small.c static unsigned char foo (signed char left, unsigned int right) { return left < 0 || right >= 32 ? : left >> right; } static long long bar (long long si1, long long si2) { return (si1 ^ si2 & -si2 ^ si2) < 0 ? : si1 - si2; } static unsigned char baz (unsigned short ui1, unsigned char ui2) { return ui1 * ui2; } struct S0 { const unsigned char f0; }; volatile unsigned char g_3[10] = { }; const unsigned char g_634[2][7] = { 0x3585880DL, 0x3585880DL, 0x3585880DL, 0x3585880DL, 0x3585880DL, 0x3585880DL, 0, 0x3585880DL, 0x3585880DL, 0x3585880DL, 0x3585880DL, 0x3585880DL, 1 }; const struct S0 g_760 = { 0x59 }; int func9 (int); int bux (int, unsigned char *, int, unsigned char *, int); void func_23 (const int p_24, unsigned char *p_25, unsigned char p_26, const unsigned char p_28) { unsigned char l_1145[2]; if (bux (p_28 || func9 (g_3[9]), p_25, g_760.f0, p_25, foo (baz (g_634[1][5], bar (p_26, p_28)) <= l_1145[0], p_24))) { } }