🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

abort in delete of virtual derived class.

#891
From: Rech TURLAIS Tel 4216 15-01-92 M...
Date: Thu, 03 Sep 1992 20:29
53 lines
1756 bytes
  The following program aborts in s2::~s2. s2 is virtualy derived
from s1 and destructor is virtual. This appears on SUN4 SUNOS 4.1.1.

 Thank you.
 
 P. Turlais.

The commands :

190 halley % gcc -g -v s.cc
Reading specs from /d/turlais/lib/gcc-lib/sun4/2.2.2/specs
gcc version 2.2.2
 /d/turlais/lib/gcc-lib/sun4/2.2.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__sparc -D__sun -D__unix -g s.cc /usr/tmp/cca03231.i
GNU CPP version 2.2.2 (sparc)
 /d/turlais/lib/gcc-lib/sun4/2.2.2/cc1plus /usr/tmp/cca03231.i -quiet -dumpbase s.cc -g -version -o /usr/tmp/cca03231.s
GNU C++ version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
 as -o s.o /usr/tmp/cca03231.s
 /d/turlais/lib/gcc-lib/sun4/2.2.2/ld -e start -dc -dp /lib/crt0.o -L/d/turlais/lib/gcc-lib/sun4/2.2.2 -L/d/turlais/lib s.o -lgcc -lc -lg -lgcc
191 halley % a.out
IOT trap (core dumped)

The code :

class s1 {
public:
    s1() {}
    virtual int f(int) = 0;
    virtual ~s1() = 0;

 };

class s2 : virtual public s1 {
public:
    s2(int i) : val(i) {}
    ~s2();
    int f(int);

    int val;
};

s2::~s2()
{}

int s2::f(int i)
{ return i + j;
}

main()
{
    s1 *s = new s2(4);

    delete s;
}
Technical Details
Message-ID: <9209031629.AA16510@rechser.total.fr.recherche>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!rechser.total.fr!turlais

Show Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!rechser.total.fr!turlais
From: turlais@rechser.total.fr (Rech TURLAIS Tel 4216 15-01-92 MJ )
Subject: abort in delete of virtual derived class.
Message-ID: <9209031629.AA16510@rechser.total.fr.recherche>
Sender: gnulists@ai.mit.edu
Reply-To: turlais@rechser.total.fr
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 3 Sep 1992 20:29:37 GMT
Approved: bug-g++@prep.ai.mit.edu
Lines: 55