optimization/10764: ICE when using log(), -fast-math and optimization

phil_e@wanadoo.fr phil_e@wanadoo.fr
Tue May 13 05:29:00 GMT 2003


>Number:         10764
>Category:       optimization
>Synopsis:       ICE when using log(), -fast-math and optimization
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Tue May 13 03:56:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     phil_e@wanadoo.fr
>Release:        gcc version 3.4 20030513 (experimental)
>Organization:
>Environment:
GNU/linux x86
>Description:
double log(double);

double ndtri(double y0)
{
  double x;

  x = log(y0);
  x = log(x);

  return x;
}

$ gcc -O1 -ffast-math gcc-3.4-error.c
gcc-3.4-error.c: In function `ndtri':
gcc-3.4-error.c:11: internal compiler error: in subst_stack_regs_pat, at reg-stack.c:1764

  regno = get_hard_regnum (&temp_stack, *src2);
  if (regno < 0)
    abort ();

>How-To-Repeat:

>Fix:
replace prototype
double log(double);
by
#include <math.h>
or remove -O1 or remove --fast-math
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list