Seen on Ubuntu Hardy using r139870. [EMAIL PROTECTED]:~/volatile/tmp21$ current-gcc -O2 small.c small.c: In function func_26: small.c:34: warning: overflow in implicit constant conversion small.c:27: internal compiler error: in set_value_range, at tree-vrp.c:397 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.
[EMAIL PROTECTED]:~/volatile/tmp21$ current-gcc -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../configure --program-prefix=current- --enable-languages=c,c++ --prefix=/home/regehr : (reconfigured) ../configure --program-prefix=current- --enable-languages=c,c++ --prefix=/home/regehr : (reconfigured) ../configure --program-prefix=current- --enable-languages=c,c++ --prefix=/home/regehr : (reconfigured) ../configure --program-prefix=current- --enable-languages=c,c++ --prefix=/home/regehr : (reconfigured) ../configure --program-prefix=current- --prefix=/home/regehr --enable-languages=c,c++ --no-create --no-recursion Thread model: posix gcc version 4.4.0 20080901 (experimental) (GCC) [EMAIL PROTECTED]:~/volatile/tmp21$ cat small.c typedef signed char int8_t; typedef short int int16_t; typedef int int32_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; static inline uint32_t safe_add_int8_t_s_s (int8_t si1, int16_t si2) { if ((si1) && (si2) && (si1 > (1 - si2)) || (si1) && (si2 < 0) && (si1 < (-128 - si2))) return si1; return si1 + si2; } uint32_t g_2; uint32_t g_113; uint32_t g_145; int32_t func_17 (int32_t p_18, uint32_t p_19, uint32_t p_21) { uint32_t l_23 = -1L; return l_23; } uint32_t func_26 (uint16_t p_27) { uint32_t l_424; if (func_93 (func_59 (safe_add_int8_t_s_s (p_27, 1))), func_124 (l_424, -7L, 1, g_145, 1, (safe_add_int8_t_s_s (1, 1)), 1), 1, 1, 1) func_117 (1, 1, (safe_add_uint64_t_u_u (1, (safe_add_int8_t_s_s (1, 0xCDF4BE7A1B7E4629LL)))), 1); uint32_t l_210; if (func_17 ((safe_add_int8_t_s_s (g_2, (0x6C79A83AL | func_17 (1, 1, 1)))), 0x4C9FL, 1)) { uint32_t l_212; if (safe_mul_int32_t_s_s ((1, 1, l_212, (1, (safe_add_int8_t_s_s (l_210, 1)), 1, 1)), 1)) if (func_59 (1, (safe_add_int8_t_s_s (g_113, 1)))) { } } } -- Summary: another ice in set_value_range, at tree-vrp.c:397 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: regehr at cs dot utah dot edu GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37327