This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

vtable layout in 3.1 versus 3.3


I know that there were some C++ ABI changes between 3.1
and 3.3.  Attached is a test case showing a problem with
changed vtable layout going from 3.1 to 3.3.   The test
cases uses single virtual inheritance.

Is this a result of a deliberate C++ ABI change, or is it just
a bug?

The expected output of this test case (which I get when I
use either 3.1 or 3.3 consistently) is:
  Executing VBase::VBase(int). Value = 7
  Executing Derived1::Derived1(int). Value = 47
  Executing Derived1::d1_a. Value = 47
  Executing Derived1::d1_b. Value = 47
The output I see if I compile classes.cc with 3.1 and
useclasses.cc with 3.3 is different:
  Executing VBase::VBase(int). Value = 7
  Executing Derived1::Derived1(int). Value = 47
  Executing Derived1::~Derived1. Value = 47
  Executing VBase::~VBase. Value = 7
  Executing Derived1::vb_a. Value = 47





			--Matt


Attachment: classes.cc
Description: Binary data

Attachment: classes.h
Description: Text document

Attachment: useclasses.cc
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]