[Bug other/49767] New: __mulsc3 runs into infinite recursion if GCC is compiled with -O0 option

waffle.bai at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun Jul 17 03:40:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49767

           Summary: __mulsc3 runs into infinite recursion if GCC is
                    compiled with -O0 option
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: other
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: waffle.bai@gmail.com


The GCC built is of version 4.3.2 and is configured with option
``--enable-languages=c,c++,fortran --disable-libada' CFLAGS='-O0 -g' ''
`uname -a' : Linux f18 2.6.34.8-68.fc13.i686.PAE #1 SMP Thu Feb 17 14:54:10 UTC
2011 i686 i686 i386 GNU/Linux

The implementation of __mulsc3 in libgcc2.c is somehow contingent on certain
optimization to get rid of the infinite tail call recursion.     

A simple test program is as follows.

#include <stdio.h>
int main (int argc,  char **argv) {
  _Complex float c = 2.5fi;
  _Complex float d = 1.0;
  _Complex float x, y;
  float  a = (float) argc;

  x = c * d;
  y = a * 1i;
  printf ("%f %f\n", __imag__ x, y);
  return 0;
}



More information about the Gcc-bugs mailing list