public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/10427: [3.2/3.3/3.4 regression] Stack corruption with variable-length automatic arrays and virtual destructors
@ 2003-04-17 20:38 bangerth
0 siblings, 0 replies; only message in thread
From: bangerth @ 2003-04-17 20:38 UTC (permalink / raw)
To: 188527, gcc-bugs, gcc-prs, nobody, ttimonen
Old Synopsis: [3.0/3.2/3.3/3.4 regression] Stack corruption with variable-length automatic arrays and virtual destructors
New Synopsis: [3.2/3.3/3.4 regression] Stack corruption with variable-length automatic arrays and virtual destructors
State-Changed-From-To: open->analyzed
State-Changed-By: bangerth
State-Changed-When: Thu Apr 17 20:38:15 2003
State-Changed-Why:
Confirmed. This small variation shows what happens:
----------------------
#include <iostream>
struct A {
A () { std::cout << "A::A" << std::endl; }
~A() { std::cout << "A::~A" << std::endl;}
};
int main(void) {
int foo=1;
A bar[foo];
foo++;
return 0;
}
----------------------------
g/x> /home/bangerth/bin/gcc-3.4-pre/bin/c++ x.cc
g/x> ./a.out
A::A
A::~A
A::~A
Ups. If we make the destructor virtual, we have to look
up the vtable, but since the expected number of objects
doesn't match the actual number, the vtable pointer is
wrong, and we jump into Nirvana.
W.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10427
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-04-17 20:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-17 20:38 c++/10427: [3.2/3.3/3.4 regression] Stack corruption with variable-length automatic arrays and virtual destructors bangerth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).