[gnu.g++.bug] Bus error on Sun4 with 1.34.1 compiled test7

cooper@UUNET.UU.NET (Clark Cooper) (03/29/89)

System:		G++ 1.34.1 (obtained from yahi.stanford.edu)
Hardware:	Sun 4
OS:		SunOS 4.0

Configuration:	config.g++ sun4-os4

Symptoms:

	The program test7.cc provided in the libg++ distribution
(version 1.34.1 from yahi.stanford.edu), aborts with a bus error after
being compiled by g++.

Script:

Script started on Tue Mar 28 16:40:54 1989
eng3% g++ -v -g -O -fchar-charconst -fsave-memoized -o test7 test7.cc -lg++ -lm
g++ version 1.34.1
 /usr2/cooper/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__OPTIMIZE__ test7.cc /tmp/cca13120.cpp
GNU CPP version 1.34
 /usr2/cooper/lib/gcc-c++ /tmp/cca13120.cpp -quiet -dumpbase test7.cc -fchar-charconst -fsave-memoized -opt -version -G -o /tmp/cca13120.s
GNU C++ version 1.34.1 (sparc) compiled by GNU C version 1.34.
 as /tmp/cca13120.s -o test7.o
 /usr2/cooper/lib/gcc-ld++ -C -o test7 -e start -dc -dp -Bstatic /usr2/cooper/lib/crt0+.o test7.o -lg++ -lm -lg++ /usr2/cooper/lib/gcc-gnulib -lg -lc
eng3% gdb -q test7
Reading symbol data from /usr2/cooper/src/dist-libg++/tests/test7...done.
(gdb) run
Starting program: /usr2/cooper/src/dist-libg++/tests/test7 
Complex one = (1, 0)
i = (0, 1)
neg_one = (-1, 0)
sqrt(neg_one) = (0, 1)
a = (2, 3)
b = (4, 5)
a + one = (3, 3)

Program received signal 10, Bus error
main () (/usr2/cooper/lib/g++-include/Complex.h line 121)
121	  re = r; im = i;
(gdb) p/x $pc
$1 = 0x000036f0
(gdb) x/16i 0x36d0
0x36d0 <main+516>:	faddd f2,f4,f14
0x36d4 <main+520>:	stdf f14,[fp-0x8]
0x36d8 <main+524>:	ldd [fp-0x8],l0
0x36dc <main+528>:	orcc g0,l2,g0
0x36e0 <main+532>:	bne 0x36f0 <main+548>
0x36e4 <main+536>:	sethi %hi(0x0),g0
0x36e8 <main+540>:	call 0xcda8 <__builtin_new>
0x36ec <main+544>:	or g0,0x10,o0
0x36f0 <main+548>:	std l4,[o0]
0x36f4 <main+552>:	std l0,[o0+0x8]
0x36f8 <main+556>:	add fp,0xfffffec0,o0
0x36fc <main+560>:	sethi %hi(0x3000),g1
0x3700 <main+564>:	ldd [g1+0x1c8],o2
0x3704 <main+568>:	std o2,[o0]
0x3708 <main+572>:	std o2,[o0+0x8]
0x370c <main+576>:	or g0,o0,l0
(gdb) quit
The program is running.  Quit anyway? (y or n) y
eng3% ^D
script done on Tue Mar 28 16:45:28 1989
======================================================
Clark Cooper		cooper@gecrux.steinmetz.ge.com
(518) 387-5887		coopercc@crd.ge.com
			...!uunet!steinmetz!cooper

cooper@gecrux.steinmetz.ge.com (Clark Cooper) (03/29/89)

System:		G++ 1.34.1 (obtained from yahi.stanford.edu)
Hardware:	Sun 4
OS:		SunOS 4.0

Configuration:	config.g++ sun4-os4

Symptoms:

	The program test7.cc provided in the libg++ distribution
(version 1.34.1 from yahi.stanford.edu), aborts with a bus error after
being compiled by g++.

Script:

Script started on Tue Mar 28 16:40:54 1989
eng3% g++ -v -g -O -fchar-charconst -fsave-memoized -o test7 test7.cc -lg++ -lm
g++ version 1.34.1
 /usr2/cooper/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__OPTIMIZE__ test7.cc /tmp/cca13120.cpp
GNU CPP version 1.34
 /usr2/cooper/lib/gcc-c++ /tmp/cca13120.cpp -quiet -dumpbase test7.cc -fchar-charconst -fsave-memoized -opt -version -G -o /tmp/cca13120.s
GNU C++ version 1.34.1 (sparc) compiled by GNU C version 1.34.
 as /tmp/cca13120.s -o test7.o
 /usr2/cooper/lib/gcc-ld++ -C -o test7 -e start -dc -dp -Bstatic /usr2/cooper/lib/crt0+.o test7.o -lg++ -lm -lg++ /usr2/cooper/lib/gcc-gnulib -lg -lc
eng3% gdb -q test7
Reading symbol data from /usr2/cooper/src/dist-libg++/tests/test7...done.
(gdb) run
Starting program: /usr2/cooper/src/dist-libg++/tests/test7 
Complex one = (1, 0)
i = (0, 1)
neg_one = (-1, 0)
sqrt(neg_one) = (0, 1)
a = (2, 3)
b = (4, 5)
a + one = (3, 3)

Program received signal 10, Bus error
main () (/usr2/cooper/lib/g++-include/Complex.h line 121)
121	  re = r; im = i;
(gdb) p/x $pc
$1 = 0x000036f0
(gdb) x/16i 0x36d0
0x36d0 <main+516>:	faddd f2,f4,f14
0x36d4 <main+520>:	stdf f14,[fp-0x8]
0x36d8 <main+524>:	ldd [fp-0x8],l0
0x36dc <main+528>:	orcc g0,l2,g0
0x36e0 <main+532>:	bne 0x36f0 <main+548>
0x36e4 <main+536>:	sethi %hi(0x0),g0
0x36e8 <main+540>:	call 0xcda8 <__builtin_new>
0x36ec <main+544>:	or g0,0x10,o0
0x36f0 <main+548>:	std l4,[o0]
0x36f4 <main+552>:	std l0,[o0+0x8]
0x36f8 <main+556>:	add fp,0xfffffec0,o0
0x36fc <main+560>:	sethi %hi(0x3000),g1
0x3700 <main+564>:	ldd [g1+0x1c8],o2
0x3704 <main+568>:	std o2,[o0]
0x3708 <main+572>:	std o2,[o0+0x8]
0x370c <main+576>:	or g0,o0,l0
(gdb) quit
The program is running.  Quit anyway? (y or n) y
eng3% ^D
script done on Tue Mar 28 16:45:28 1989
--
======================================================
Clark Cooper		cooper@gecrux.steinmetz.ge.com
(518) 387-5887		coopercc@crd.ge.com
			...!uunet!steinmetz!cooper