🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Stephen Schaefer Fri, 23 Dec 1988 17:34
g++ 1.31 & String.h
#1576
Author: Stephen Schaefer
Date: Fri, 23 Dec 1988 17:34
73 lines
3205 bytes
Background:

On a 4.3BSD Vax 8650, I have g++ 1.31 compiled with gcc 1.31, with
fixes by Michael Tiemann to g++/cplus-init.c, g++/expr.c, g++/stmt.c,
and reverse_condition made extern in gcc/jump.c.  I get a segmentation
violation with the following program.  std.h and String.h are as
distributed with libg++ 1.25.  gcc-c++ wasn't producing any core file,
although it did produce the ``Segmentation violation'' message, and
g++ was reporting that gcc-c++ was killed with a fatal signal.  The
following change to the g++ code produced a core file for me:

*** /tmp/,RCSt1010881	Thu Dec 22 17:53:20 1988
--- toplev.c	Thu Dec 22 16:16:24 1988
***************
*** 1881,1884 ****
--- 1881,1885 ----
  {
    error ("Segmentation violation");
    signal (SIGSEGV, SIG_DFL);
+   (void) kill(getpid(), SIGSEGV);
  }

Here is a script of the problem:

Script started on Fri Dec 23 12:11:22 1988
simon:sps:161 cat test.cc
# include "std.h"
# include "String.h"

void
doo()
{
        String version; // if this is gone ...
        char ch;
        switch(ch)
        {
            case 'v':
                String wh; // ... or this is gone, it works.
                break;
        }
}

simon:sps:162 g++ -v -c test.cc
g++ version 1.31.0
 /usr/local/std/lib/gcc-cpp+ -v -undef -D__GNU__ -D__GNUG__ -Dvax -Dunix test.cc /tmp/cc012457.cpp
GNU CPP version 1.31.0
 /usr/local/std/lib/gcc-c++ /tmp/cc012457.cpp -quiet -dumpbase test.cc -noreg -version -o /tmp/cc012457.s
GNU C++ version 1.31.0 (vax) compiled by GNU C version 1.31.
In function doo ():
test.cc:15: Segmentation violation
g++: Program c++ got fatal signal 11.
simon:sps:163 gdb /usr/local/std/lib/gcc-c++ core
GDB 2.5, 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/local/std/lib/gcc-c++...done.
Type "help" for a list of commands.
(gdb) where
#0  0x34925 in fixup_gotos (stack_level=(rtx) 0x0, cleanup_list=(tree) 0x9ded4, first_insn=(rtx) 0x1e0360, dont_jump_in=1) (stmt.c line 680)
#1  0x35c2b in expand_end_bindings (vars=(tree) 0x1e2228, mark_ends=1, dont_jump_in=1) (stmt.c line 1646)
#2  0xcde2 in yyparse () (cplus-parse.y line 1728)
#3  0x136e in compile_file (name=(char *) 0x7fffe91c "/tmp/cc015029.cpp") (toplev.c line 1010)
#4  0x2c67 in main (argc=9, argv=(char **) 0x7fffe8a4, envp=(char **) 0x7fffe8cc) (toplev.c line 1824)
(gdb) quit
simon:sps:164 

script done on Fri Dec 23 12:16:45 1988

--
	Stephen P. Schaefer, Postmaster	MCNC
	sps@mcnc.org			P.O. Box 12889
	...!mcnc!sps			RTP, NC 27709
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads