Bug 64241 - Virtual table layout does not match the C++ ABI
Virtual table layout does not match the C++ ABI
Status: CLOSED ERRATA
Product: Red Hat Linux
Classification: Retired
Component: gcc3 (Show other bugs)
7.2
ia64 Linux
medium Severity high
: ---
: ---
Assigned To: Jakub Jelinek
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2002-04-30 03:34 EDT by Grigory Zagorodnev
Modified: 2008-05-01 11:38 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2002-04-30 03:34:40 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Grigory Zagorodnev 2002-04-30 03:34:36 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; NetCaptor 
6.5.0PB8)

Description of problem:
According to the C++ ABI, virtual table should contain complete function 
descritor in place of virtual function poiter. (See below for quoted ABI).

gcc 3.0 violates this requirement by placing pointer to function descriptor in 
the virtual table instead of function descriptor itself.

C++ ABI
-------
URL    : http://www.codesourcery.com/cxx-abi/abi.html
Section: 2.5.2 Virtual Table Components and Order 
Quote  :
"The form of a virtual function pointer is specified by the processor-specific 
C++ ABI for the implementation. In the specific case of 64-bit Itanium shared 
library builds, a virtual function pointer entry contains a pair of components 
(each 64 bits): the value of the target GP value and the actual function 
address. That is, rather than being a normal function pointer, which points to 
such a two-component descriptor, a virtual function pointer entry is the 
descriptor."


Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
This happens with any class required virtual table (and virtual functions)

Additional info:
Comment 1 Jakub Jelinek 2002-04-30 04:10:28 EDT
We have shipped gcc3-3.0.4-1 as errata, and that complies to this (likewise
gcc 3.1 will).

Note You need to log in before you can comment on or make changes to this bug.