------- 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

Reply via email to