[Bug middle-end/13938] New: ICE when rounding double to long long

hebisch at math dot uni dot wroc dot pl gcc-bugzilla@gcc.gnu.org
Sat Jan 31 00:16:00 GMT 2004


The following function:

long long d2ll(double x)
{
        return (long long)(x>0?(x-0.5):(x+0.5));
}

compiled using '-c -O3' options couses ICE:

stystem6.c: In function `d2ll':
stystem6.c:4: internal compiler error: in subst_stack_regs_pat, at reg-stack.c:1430
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

gcc -v gives:
Using built-in specs.
Configured with: ../gcc-20040130/configure --enable-languages=c
Thread model: posix
gcc version 3.5.0 20040130 (experimental)

The problem is present with version from 20040121. The problem is absent
in version from 20040120 (and in earlier versions). Note that the function
above is translation to C of GNU Pascal built-in `round' function. The
problem couses ICE during compilation of GPC `System' unit and in effect
multiple test failures.

-- 
           Summary: ICE when rounding double to long long
           Product: gcc
           Version: 3.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hebisch at math dot uni dot wroc dot pl
                CC: gcc-bugs at gcc dot gnu dot org
 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=13938



More information about the Gcc-bugs mailing list