Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!usc!cs.utexas.edu!uunet!mcvax!kth!draken!tut!santra!gson From: gson@hutcs.hut.fi (Andreas Gustafsson) Newsgroups: gnu.gcc.bug Subject: GCC 1.35 and 1.35.95 get fatal signal 11 Keywords: inline asm Message-ID: <23987@santra.UUCP> Date: 26 Jul 89 11:29:31 GMT Sender: news@santra.UUCP Reply-To: gson@hutcs.hut.fi Organization: Helsinki University of Technology, Finland Lines: 38 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