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] | |
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] |