[gnu.gcc.bug] GCC 1.35 and 1.35.95 get fatal signal 11

gson@hutcs.hut.fi (Andreas Gustafsson) (07/26/89)

The following source file compiles OK and generates working code using
GCC 1.35 without -O.  GCC 1.35.95 without -O complains about
"inconsistent operand constraints in an `asm'", and _both_ versions
die from signal 11 when compiling with -O.

Configuration: GCC 1.35 on a Sun 3/50 running SunOS 4.0; GCC 1.35.95
on a Sun 4 running SunOS 4.0.

gson@sauna.hut.fi: gcc -v -O crash.c
gcc version 1.35.95
 /usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dsparc -Dsun -Dunix -D__sparc__ -D
__sun__ -D__unix__ -D__OPTIMIZE__ crash.c /tmp/cca15910.cpp
GNU CPP version 1.35.95
 /usr/local/lib/gcc-cc1 /tmp/cca15910.cpp -quiet -dumpbase crash.c -O -version -
o /tmp/cca15910.s
GNU C version 1.35.95 (sparc) compiled by GNU C version 1.35.95.
default target switches: -mfpu -mepilogue
gcc: Program cc1 got fatal signal 11.

================================ Cut here ================================

static inline long fracmult(x,y) long x,y;
{ long high;
  asm("mulsl %3,%1,%0" : "=d" (x), "=d" (high): "0" (x), "d" (y));
  return((high<<25) | (x>>7));
}

long bar()
{ return(fracmult(0L,0L));
}

================================ Cut here ================================

-- 
Andreas Gustafsson
Internet: gson@hutcs.hut.fi
UUCP: ...uunet!mcvax!santra!hutcs!gson
Voice: +358 0 563 5592