------- Additional Comments From reichelt at gcc dot gnu dot org 2005-04-25 21:04 ------- Confirmed.
Here's a reduced snippet which crashes on i686-pc-linux-gnu when compiled with -O2: ================================================= double d=1; inline double foo() { return d ? 1e100 : 0.0; } int i=(int)foo(); ================================================= The error message is: bug.cc: In function 'void __static_initialization_and_destruction_0(int, int)': bug.cc:3: internal compiler error: in convert_move, at expr.c:339 Please submit a full bug report, [etc.] The ICE is in a different position than the original testcase, but the underlying problem seems to be the same: The compiler crashes when converting a too large floating-point number into an int. The 4.0.0 release is affected, but not mainline. -- What |Removed |Added ---------------------------------------------------------------------------- CC| |reichelt at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Component|tree-optimization |rtl-optimization Ever Confirmed| |1 Keywords| |ice-on-valid-code, monitored Known to fail| |4.0.0 Last reconfirmed|0000-00-00 00:00:00 |2005-04-25 21:04:10 date| | Summary|ICE with gcc4.0.0 in |[4.0 regression] ICE folding |fold_convert, at fold- |large floating-point values |const.c:1922 | Target Milestone|--- |4.0.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21207