🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #1577

G++ 1.31 - bugs

#1577
From: Philippe Gautron
Date: Thu, 22 Dec 1988 15:54
264 lines
7903 bytes

version: G++ 1.31.0, GCC 1.31., libg++ 1.25.0
Machine: SUN 3/260, running SUN 0S 3.4

Configuration:	tm.h --> tm-sun3+.h
		md   --> m68k.md
		aux-output.c --> output.m68k.c

Bug fixes:	SUN3.README
		expr.c (article 244)
		stmt.c (article 245)

Symptoms:
	- libg++ compiles without -O, aborts with -0 (see also article 247)
	- libg++ tests: compilation aborts with test4.cc (signal 11)
	- ATT cfront 1.1: compiles (that's new!) but execution fails.

More about
1) libg++ test4.cc
------
[]/u2/gautron/GNU/usr/local/bin/g++ -B/u2/gautron/GNU/usr/local/lib/gcc- -I. -I/u2/gautron/GNU/usr/local/lib/g++-include -v -c test4.cc
g++ version 1.31.0
 /u2/gautron/GNU/usr/local/lib/gcc-cpp+ -v -I. -I/u2/gautron/GNU/usr/local/lib/g++-include -undef -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix test4.cc /tmp/cca00819.cpp
GNU CPP version 1.31.0
 /u2/gautron/GNU/usr/local/lib/gcc-c++ /tmp/cca00819.cpp -quiet -dumpbase test4.cc -noreg -version -o /tmp/cca00819.s
GNU C++ version 1.31.0 (68k, MIT syntax) compiled by GNU C version 1.31.
In function struct Integer fibonacci (struct Integer):
test4.cc:35: Segmentation violation
/u2/gautron/GNU/usr/local/bin/g++: Program c++ got fatal signal 11.

[]gdb+ /u2/gautron/GNU/usr/local/lib/gcc-c++ core
gdb+ /u2/gautron/GNU/usr/local/lib/gcc-c++ core
GDB 2.5.4 (GNU C++ 1.22.0 compatible), Copyright (C) 1988 Free Software Foundation, Inc.
There is ABSOLUTELY NO WARRANTY for GDB; type "info warranty" for details.
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "info copying" to see the conditions.
Reading symbol data from /u2/gautron/GNU/usr/local/lib/gcc-c++...done.
Core file is from "gcc-c++".
Program terminated with signal 11, Segmentation fault.
Type "help" for a list of commands.
[gdb] bt
bt
#0  0x11e00 in chainon (op1=(tree) 0x1c98d4, op2=(tree) 0x1ce824) (tree.c line 777)
#1  0x169ae in poplevel (keep=1, reverse=1, functionbody=0) (cplus-decl.c line 735)
#2  0x5171a in expand_inline_function (fndecl=(tree) 0x14f948, parms=(tree) 0x1caa98, target=(rtx) 0x0, ignore=1, type=(tree) 0xd20ce, structure_value_addr=(rtx) 0x0) (integrate.c line 939)
#3  0x36c0c in expand_call (exp=(tree) 0x1cdee4, target=(rtx) 0x0, ignore=1, modifier=EXPAND_NORMAL) (expr.c line 4123)
#4  0x349ca in expand_expr (exp=(tree) 0x1cdee4, target=(rtx) 0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL) (expr.c line 2720)
#5  0x39c52 in expand_expr_stmt (exp=(tree) 0x1cdee4) (stmt.c line 929)
#6  0xa30b0 in expand_delete (type=(tree) 0x14dfac, addr=(tree) 0x1c6ea4, auto_delete=860270) (cplus-init.c line 2307)
#7  0x35a7e in expand_expr (exp=(tree) 0x1c6f14, target=(rtx) 0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL) (expr.c line 3294)
#8  0x3b08a in expand_cleanups (list=(tree) 0xce4e4, dont_do=(tree) 0x0) (stmt.c line 1902)
#9  0x3b0b6 in fixup_cleanups (list=(tree) 0xce4e4, before_jump=(rtx *) 0x1ca88c) (stmt.c line 1918)
#10 0x3965c in fixup_gotos (stack_level=(rtx) 0x0, cleanup_list=(tree) 0x0, first_insn=(rtx) 0x1c451c, dont_jump_in=0) (stmt.c line 696)
#11 0x3dc5e in fixup_parm_cleanups (after=(rtx) 0x1cd40c, before=(rtx) 0x1c5584, end=(rtx) 0x1cde20) (stmt.c line 3733)
#12 0x2138a in finish_function (call_poplevel=0) (cplus-decl.c line 6451)
#13 0xc790 in yyparse () (cplus-parse.y line 251)
#14 0x34b0 in compile_file (name=(char *) 0xefffde8 "/tmp/cca00819.cpp") (toplev.c line 1010)
#15 0x4d4e in main (argc=9, argv=(char **) 0xefffd78, envp=(char **) 0xefffda0) (toplev.c line 1824)


2) cfront:
gdb+ cfront core 
GDB 2.5.4 (GNU C++ 1.22.0 compatible), Copyright (C) 1988 Free Software Foundation, Inc.
There is ABSOLUTELY NO WARRANTY for GDB; type "info warranty" for details.
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "info copying" to see the conditions.
Reading symbol data from /usr.MC68020/corto2/gautron/TMP/cfront...Invalid symbol data: unknown symbol-type code `/' at symtab pos 182.
Core file is from "cfront".
Program terminated with signal 10, Bus error.
Type "help" for a list of commands.
[gdb] quit
[]
[]dbx cfront core
dbx cfront core
Reading symbolic information...
dbx: internal error: unexpected value 47 at line 1903 in file object.c
[]
[]cat table.s
....
.globl _new_key
_new_key:
	link a6,#-8
	moveb a6@(15),a6@(15)
	moveb a6@(19),a6@(19)
	movel a6@(8),sp@-
	clrl sp@-
	jbsr _name_PSname_PQI
	movel d0,a6@(-4)
	clrl sp@-
	movel a6@(-4),sp@-
	movel _ktbl,sp@-
	jbsr _insert_PStable_PSname_uQI
	movel d0,a6@(-8)
	movel a6@(-8),a0
	moveb a6@(15),a0@
	addw #20,sp
	movel a6@(-8),a0
	tstb a6@(19)
	jeq L165
	moveb a6@(19),d0
	jra L166
L165:
	moveb a6@(15),d0
L166:
	clrl d1
	moveb d0,d1
	movel d1,a0@(4)
	cmpb #143,a6@(15)
	jne L167
	moveb a6@(19),d0
	jra L168
L167:
	moveb a6@(15),d0
L168:
	clrl d1
	moveb d0,d1
	movel d1,d0
	asll #2,d0
	lea _keys,a0
	movel a6@(8),a0@(d0:l)
	pea 1:w
	movel a6@(-4),sp@-
	jbsr __$_name
	addqw #8,sp
L164:
	unlk a6
	rts
LC9:
	.ascii "Qr%n'sT missing\0"
...
[] cat norm2.s
...
.globl __$_expr
__$_expr:
	link a6,#0
	tstl a6@(8)
	jeq L77
	addql #1,_NFe
	movel a6@(8),a0
	movel _expr_free,a0@(8)
	movel a6@(8),_expr_free
	clrl a6@(8)
	tstl a6@(12)
	jeq L75
	movel a6@(8),sp@-
	jbsr ___builtin_delete
	addqw #4,sp
	jra L76
L75:
L76:
L77:
L74:
	unlk a6
	rts
	.even
...
.globl __$_name
__$_name:
	link a6,#0
	addqw #8,sp
	tstl a6@(8)
	jeq L138
	addql #1,_NFn
	movel a6@(8),a0
	movel _name_free,a0@(52)
	movel a6@(8),_name_free
	clrl a6@(8)
	movel a6@(12),sp@-
	movel a6@(8),sp@-
	jbsr __$_expr
L138:
L137:
	unlk a6
	rts
	.even


[]adb cfront core
core file = core -- program ``cfront''
SIGBUS 10: bus error
$C
__$_name() + 38

0x25E8E?
__$_name:
__$_name:       4e560000        =       addqw   #8,sp
:r
:r
# 1 ""

/* <<ATT cfront by G++>> */
breakpoint      _new_key+0x82:          pea     1:w
:s
:s
stopped at      _new_key+0x86:          movl    a6@(-4),sp@-
:s
:s
stopped at      _new_key+0x8a:          bsrl    __$_name
:s
:s
stopped at      __$_name:               linkw   a6,#0
:s
:s
stopped at      __$_name+4:             addqw   #8,sp
:s
:s
stopped at      __$_name+6:             tstl    a6@(8)
:s
:s
stopped at      __$_name+0xa:           beqs    __$_name+0x36
:s
:s
stopped at      __$_name+0xc:           addql   #1,_NFn:l
:s
:s
stopped at      __$_name+0x12:          movl    a6@(8),a0
:s
:s
stopped at      __$_name+0x16:          movl    _name_free:l,a0@(0x34)
:s
:s
stopped at      __$_name+0x1e:          movl    a6@(8),_name_free:l
:s
:s
stopped at      __$_name+0x26:          clrl    a6@(8)
:s
:s
stopped at      __$_name+0x2a:          movl    a6@(0xc),sp@-
:s
:s
stopped at      __$_name+0x2e:          movl    a6@(8),sp@-
:s
:s
stopped at      __$_name+0x32:          bsr     __$_expr
:s
:s
stopped at      __$_expr:               linkw   a6,#0
:s
:s
stopped at      __$_expr+4:             tstl    a6@(8)
:s
:s
stopped at      __$_expr+8:             beqs    __$_expr+0x3c
:s
:s
stopped at      __$_expr+0x3c:          unlk    a6
:s
:s
stopped at      __$_expr+0x3e:          rts
:s
:s
stopped at      __$_name+0x36:          unlk    a6
:s
:s
stopped at      __$_name+0x38:          rts
:s
:s
SIGBUS 10: bus error
stopped at      __$_name+0x38:          rts


Have a fun Michael.... 
    -- Philippe Gautron --
Technical Details
Message-ID: <8812221554.AA01171@corto.inria.fr>
Path: arc1-ca.pugleaf.net!utzoo!telly!ddsw1!lll-winken!uunet!tut.cis.ohio-state.edu!UUNET.UU.NET!mcvax!sor.inria.fr!gautron

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!ddsw1!lll-winken!uunet!tut.cis.ohio-state.edu!UUNET.UU.NET!mcvax!sor.inria.fr!gautron
From: mcvax!sor.inria.fr!gautron@UUNET.UU.NET (Philippe Gautron)
Newsgroups: gnu.g++.bug
Subject: G++ 1.31 - bugs
Message-ID: <8812221554.AA01171@corto.inria.fr>
Date: 22 Dec 88 15:54:59 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 263