Copyright © 2007 Linux Foundation
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
Portions of the text may be copyrighted by the following parties:
The Regents of the University of California
Free Software Foundation
Ian F. Darwin
Paul Vixie
BSDI (now Wind River)
Andrew G Morgan
Jean-loup Gailly and Mark Adler
Massachusetts Institute of Technology
Apple Inc.
Easy Software Products
artofcode LLC
Till Kamppeter
Manfred Wassman
Python Software Foundation
These excerpts are being used in accordance with their respective licenses.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
UNIX is a registered trademark of The Open Group.
LSB is a trademark of the Linux Foundation in the United States and other countries.
AMD is a trademark of Advanced Micro Devices, Inc.
Intel and Itanium are registered trademarks and Intel386 is a trademark of Intel Corporation.
PowerPC is a registered trademark and PowerPC Architecture is a trademark of the IBM Corporation.
S/390 is a registered trademark of the IBM Corporation.
OpenGL is a registered trademark of Silicon Graphics, Inc.
This is version 3.2 of the Linux Standard Base C++ Specification for S390X. This specification is part of a family of specifications under the general title "Linux Standard Base". Developers of applications or implementations interested in using the LSB trademark should see the Linux Foundation Certification Policy for details.
The LSB defines a binary interface for application programs that are compiled and packaged for LSB-conforming implementations on many different hardware architectures. Since a binary specification shall include information specific to the computer processor architecture for which it is intended, it is not possible for a single document to specify the interface for all possible LSB-conforming implementations. Therefore, the LSB is a family of specifications, rather than a single one.
This document should be used in conjunction with the documents it references. This document enumerates the system components it includes, but descriptions of those components may be included entirely or partly in this document, partly in other documents, or entirely in other reference documents. For example, the section that describes system service routines includes a list of the system routines supported in this interface, formal declarations of the data structures they use that are visible to applications, and a pointer to the underlying referenced specification for information about the syntax and semantics of each call. Only those routines not described in standards referenced by this document, or extensions to those standards, are described in the detail. Information referenced in this way is as much a part of this document as is the information explicitly included here.
The specification carries a version number of either the form x.y or x.y.z. This version number carries the following meaning:
The first number (x) is the major version number. All versions with the same major version number should share binary compatibility. Any addition or deletion of a new library results in a new version number. Interfaces marked as deprecated may be removed from the specification at a major version change.
The second number (y) is the minor version number. Individual interfaces may be added if all certified implementations already had that (previously undocumented) interface. Interfaces may be marked as deprecated at a minor version change. Other minor changes may be permitted at the discretion of the LSB workgroup.
The third number (z), if present, is the editorial level. Only editorial changes should be included in such versions.
Since this specification is a descriptive Application Binary Interface, and not a source level API specification, it is not possible to make a guarantee of 100% backward compatibility between major releases. However, it is the intent that those parts of the binary interface that are visible in the source level API will remain backward compatible from version to version, except where a feature marked as "Deprecated" in one release may be removed from a future release.
Implementors are strongly encouraged to make use of symbol versioning to permit simultaneous support of applications conforming to different releases of this specification.
The Linux Standard Base (LSB) defines a system interface for compiled applications and a minimal environment for support of installation scripts. Its purpose is to enable a uniform industry standard environment for high-volume applications conforming to the LSB.
These specifications are composed of two basic parts: A common specification ("LSB-generic" or "generic LSB"), ISO/IEC 23360 Part 1, describing those parts of the interface that remain constant across all implementations of the LSB, and an architecture-specific part ("LSB-arch" or "archLSB") describing the parts of the interface that vary by processor architecture. Together, the LSB-generic and the relevant architecture-specific part of ISO/IEC 23360 for a single hardware architecture provide a complete interface specification for compiled application programs on systems that share a common hardware architecture.
ISO/IEC 23360 Part 1, the LSB-generic document, should be used in conjunction with an architecture-specific part. Whenever a section of the LSB-generic specification is supplemented by architecture-specific information, the LSB-generic document includes a reference to the architecture part. Architecture-specific parts of ISO/IEC 23360 may also contain additional information that is not referenced in the LSB-generic document.
The LSB contains both a set of Application Program Interfaces (APIs) and Application Binary Interfaces (ABIs). APIs may appear in the source code of portable applications, while the compiled binary of that application may use the larger set of ABIs. A conforming implementation provides all of the ABIs listed here. The compilation system may replace (e.g. by macro definition) certain APIs with calls to one or more of the underlying binary interfaces, and may insert calls to binary interfaces as needed.
The LSB is primarily a binary interface definition. Not all of the source level APIs available to applications may be contained in this specification.
This is the C++ module of the Linux Standards Base (LSB). This module supplements the core interfaces by providing system interfaces, libraries, and a runtime environment for applications built using the C++ programming language. These interfaces provide low-level support for the core constructs of the language, and implement the standard base C++ libraries.
Interfaces described in this module are presented in terms of C++; the binary interfaces will use encoded or mangled versions of the names.
The specifications listed below are referenced in whole or in part by this module of the Linux Standard Base. In this specification, where only a particular section of one of these references is identified, then the normative reference is to that section alone, and the rest of the referenced document is informative.
Table 2-1. Normative References
| Name | Title | URL |
|---|---|---|
| ISO/IEC 23360 Part 1 | ISO/IEC 23360:2005 Linux Standard Base - Part 1 Generic Specification | http://www.linuxbase.org/spec/ |
| ISO C (1999) | ISO/IEC 9899: 1999, Programming Languages --C | |
| ISO POSIX (2003) | ISO/IEC 9945-1:2003 Information technology -- Portable Operating System Interface (POSIX) -- Part 1: Base Definitions ISO/IEC 9945-2:2003 Information technology -- Portable Operating System Interface (POSIX) -- Part 2: System Interfaces ISO/IEC 9945-3:2003 Information technology -- Portable Operating System Interface (POSIX) -- Part 3: Shell and Utilities ISO/IEC 9945-4:2003 Information technology -- Portable Operating System Interface (POSIX) -- Part 4: Rationale Including Technical Cor. 1: 2004 | http://www.unix.org/version3/ |
| ISO/IEC 14882: 2003 C++ Language | ISO/IEC 14882: 2003 Programming languages --C++ | |
| Itanium™ C++ ABI | Itanium™ C++ ABI (Revision 1.83) | http://refspecs.linux-foundation.org/cxxabi-1.83.html |
The libraries listed in Table 3-1 shall be available on a Linux Standard Base system, with the specified runtime names.
These libraries will be in an implementation-defined directory which the dynamic linker shall search by default.
An implementation shall satisfy the following requirements:
The implementation shall implement fully the architecture described in the hardware manual for the target processor architecture.
The implementation shall be capable of executing compiled applications having the format and using the system interfaces described in this document.
The implementation shall provide libraries containing the interfaces specified by this document, and shall provide a dynamic linking mechanism that allows these interfaces to be attached to applications at runtime. All the interfaces shall behave as specified in this document.
The map of virtual memory provided by the implementation shall conform to the requirements of this document.
The implementation's low-level behavior with respect to function call linkage, system traps, signals, and other such activities shall conform to the formats described in this document.
The implementation shall provide all of the mandatory interfaces in their entirety.
The implementation may provide one or more of the optional interfaces. Each optional interface that is provided shall be provided in its entirety. The product documentation shall state which optional interfaces are provided.
The implementation shall provide all files and utilities specified as part of this document in the format defined here and in other referenced documents. All commands and utilities shall behave as required by this document. The implementation shall also provide all mandatory components of an application's runtime environment that are included or referenced in this document.
The implementation, when provided with standard data formats and values at a named interface, shall provide the behavior defined for those values and data formats at that interface. However, a conforming implementation may consist of components which are separately packaged and/or sold. For example, a vendor of a conforming implementation might sell the hardware, operating system, and windowing system as separately packaged items.
The implementation may provide additional interfaces with different names. It may also provide additional behavior corresponding to data values outside the standard ranges, for standard named interfaces.
An application shall satisfy the following requirements:
Its executable files are either shell scripts or object files in the format defined for the Object File Format system interface.
Its object files participate in dynamic linking as defined in the Program Loading and Linking System interface.
It employs only the instructions, traps, and other low-level facilities defined in the Low-Level System interface as being for use by applications.
If it requires any optional interface defined in this document in order to be installed or to execute successfully, the requirement for that optional interface is stated in the application's documentation.
It does not use any interface or data format that is not required to be provided by a conforming implementation, unless:
If such an interface or data format is supplied by another application through direct invocation of that application during execution, that application is in turn an LSB conforming application.
The use of that interface or data format, as well as its source, is identified in the documentation of the application.
It shall not use any values for a named interface that are reserved for vendor extensions.
For the purposes of this document, the following definitions, as specified in the ISO/IEC Directives, Part 2, 2001, 4th Edition, apply:
For the purposes of this document, the following terms apply:
The architectural part of the LSB Specification which describes the specific parts of the interface that are platform specific. The archLSB is complementary to the gLSB.
The total set of interfaces that are available to be used in the compiled binary code of a conforming application.
The common part of the LSB Specification that describes those parts of the interface that remain constant across all hardware implementations of the LSB.
Describes a value or behavior that is not defined by this document but is selected by an implementor. The value or behavior may vary among implementations that conform to this document. An application should not rely on the existence of the value or behavior. An application that relies on such a value or behavior cannot be assured to be portable across conforming implementations. The implementor shall document such a value or behavior so that it can be used correctly by an application.
A file that is read by an interpreter (e.g., awk). The first line of the shell script includes a reference to its interpreter binary.
The set of interfaces that are available to be used in the source code of a conforming application.
Describes the nature of a value or behavior not defined by this document which results from use of an invalid program construct or invalid data input. The value or behavior may vary among implementations that conform to this document. An application should not rely on the existence or validity of the value or behavior. An application that relies on any particular value or behavior cannot be assured to be portable across conforming implementations.
Describes the nature of a value or behavior not specified by this document which results from use of a valid program construct or valid data input. The value or behavior may vary among implementations that conform to this document. An application should not rely on the existence or validity of the value or behavior. An application that relies on any particular value or behavior cannot be assured to be portable across conforming implementations.
Other terms and definitions used in this document shall have the same meaning as defined in Chapter 3 of the Base Definitions volume of ISO POSIX (2003).
Throughout this document, the following typographic conventions are used:
| function() | the name of a function | |
| command | the name of a command or utility | |
CONSTANT | a constant value | |
| parameter | a parameter | |
variable | a variable |
Throughout this specification, several tables of interfaces are presented. Each entry in these tables has the following format:
| name | the name of the interface | |
| (symver) | An optional symbol version identifier, if required. | |
| [refno] | A reference number indexing the table of referenced specifications that follows this table. |
For example,
refers to the interface named forkpty() with symbol versionGLIBC_2.0 that is defined in the
SUSv3 reference.
Note: Symbol versions are defined in the architecture specific parts of ISO/IEC 23360 only.
An LSB-conforming implementation shall support base libraries which provide interfaces for accessing the operating system, processor and other hardware in the system.
Only those interfaces that are unique to the z/Architecture platform are defined here. This section should be used in conjunction with the corresponding section in the Linux Standard Base Specification.
Table 7-1 defines the library name and shared object name for the libstdcxx library
The behavior of the interfaces in this library is specified by the following specifications:
| [CXXABI] Itanium™ C++ ABI |
| [ISOCXX] ISO/IEC 14882: 2003 C++ Language |
| [LSB] ISO/IEC 23360 Part 1 |
An LSB conforming implementation shall provide the architecture specific methods for C++ Runtime Support specified in Table 7-2, with the full mandatory functionality as described in the referenced underlying specification.
No external methods are defined for libstdcxx - C++ type descriptors for built-in types in this part of the specification. See also the generic specification.
No external methods are defined for libstdcxx - C++ _Rb_tree in this part of the specification. See also the generic specification.
The virtual table for the std::type_info class is described by Table 7-3
Table 7-3. Primary vtable for type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for type_info |
| vfunc[0]: | type_info::~type_info() |
| vfunc[1]: | type_info::~type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
The Run Time Type Information for the std::type_info class is described by Table 7-4
No external methods are defined for libstdcxx - Class std::type_info in this part of the specification. See also the generic specification.
The virtual table for the __cxxabiv1::__enum_type_info class is described by Table 7-5
Table 7-5. Primary vtable for __cxxabiv1::__enum_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__enum_type_info |
| vfunc[0]: | __cxxabiv1::__enum_type_info::~__enum_type_info() |
| vfunc[1]: | __cxxabiv1::__enum_type_info::~__enum_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
The Run Time Type Information for the __cxxabiv1::__enum_type_info class is described by Table 7-6
No external methods are defined for libstdcxx - Class __cxxabiv1::__enum_type_info in this part of the specification. See also the generic specification.
The virtual table for the __cxxabiv1::__array_type_info class is described by Table 7-7
Table 7-7. Primary vtable for __cxxabiv1::__array_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__array_type_info |
| vfunc[0]: | __cxxabiv1::__array_type_info::~__array_type_info() |
| vfunc[1]: | __cxxabiv1::__array_type_info::~__array_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
The Run Time Type Information for the __cxxabiv1::__array_type_info class is described by Table 7-8
No external methods are defined for libstdcxx - Class __cxxabiv1::__array_type_info in this part of the specification. See also the generic specification.
The virtual table for the __cxxabiv1::__class_type_info class is described by Table 7-9
Table 7-9. Primary vtable for __cxxabiv1::__class_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__class_type_info |
| vfunc[0]: | __cxxabiv1::__class_type_info::~__class_type_info() |
| vfunc[1]: | __cxxabiv1::__class_type_info::~__class_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | __cxxabiv1::__class_type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
| vfunc[6]: | __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__upcast_result&) const |
| vfunc[7]: | __cxxabiv1::__class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const |
| vfunc[8]: | __cxxabiv1::__class_type_info::__do_find_public_src(long, void const*, __cxxabiv1::__class_type_info const*, void const*) const |
The Run Time Type Information for the __cxxabiv1::__class_type_info class is described by Table 7-10
An LSB conforming implementation shall provide the architecture specific methods for Class __cxxabiv1::__class_type_info specified in Table 7-11, with the full mandatory functionality as described in the referenced underlying specification.
Table 7-11. libstdcxx - Class __cxxabiv1::__class_type_info Function Interfaces
| __cxxabiv1::__class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const(CXXABI_1.3) [CXXABI] |
| __cxxabiv1::__class_type_info::__do_find_public_src(long, void const*, __cxxabiv1::__class_type_info const*, void const*) const(CXXABI_1.3) [CXXABI] |
The virtual table for the __cxxabiv1::__pbase_type_info class is described by Table 7-12
Table 7-12. Primary vtable for __cxxabiv1::__pbase_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__pbase_type_info |
| vfunc[0]: | __cxxabiv1::__pbase_type_info::~__pbase_type_info() |
| vfunc[1]: | __cxxabiv1::__pbase_type_info::~__pbase_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | __cxxabiv1::__pbase_type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
| vfunc[6]: | __cxxabiv1::__pbase_type_info::__pointer_catch(__cxxabiv1::__pbase_type_info const*, void**, unsigned int) const |
The Run Time Type Information for the __cxxabiv1::__pbase_type_info class is described by Table 7-13
No external methods are defined for libstdcxx - Class __cxxabiv1::__pbase_type_info in this part of the specification. See also the generic specification.
The virtual table for the __cxxabiv1::__pointer_type_info class is described by Table 7-14
Table 7-14. Primary vtable for __cxxabiv1::__pointer_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__pointer_type_info |
| vfunc[0]: | __cxxabiv1::__pointer_type_info::~__pointer_type_info() |
| vfunc[1]: | __cxxabiv1::__pointer_type_info::~__pointer_type_info() |
| vfunc[2]: | __cxxabiv1::__pointer_type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | __cxxabiv1::__pbase_type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
| vfunc[6]: | __cxxabiv1::__pointer_type_info::__pointer_catch(__cxxabiv1::__pbase_type_info const*, void**, unsigned int) const |
The Run Time Type Information for the __cxxabiv1::__pointer_type_info class is described by Table 7-15
No external methods are defined for libstdcxx - Class __cxxabiv1::__pointer_type_info in this part of the specification. See also the generic specification.
The virtual table for the __cxxabiv1::__function_type_info class is described by Table 7-16
Table 7-16. Primary vtable for __cxxabiv1::__function_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__function_type_info |
| vfunc[0]: | __cxxabiv1::__function_type_info::~__function_type_info() |
| vfunc[1]: | __cxxabiv1::__function_type_info::~__function_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | __cxxabiv1::__function_type_info::__is_function_p() const |
| vfunc[4]: | type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
The Run Time Type Information for the __cxxabiv1::__function_type_info class is described by Table 7-17
No external methods are defined for libstdcxx - Class __cxxabiv1::__function_type_info in this part of the specification. See also the generic specification.
The virtual table for the __cxxabiv1::__si_class_type_info class is described by Table 7-18
Table 7-18. Primary vtable for __cxxabiv1::__si_class_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__si_class_type_info |
| vfunc[0]: | __cxxabiv1::__si_class_type_info::~__si_class_type_info() |
| vfunc[1]: | __cxxabiv1::__si_class_type_info::~__si_class_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | __cxxabiv1::__class_type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
| vfunc[6]: | __cxxabiv1::__si_class_type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__upcast_result&) const |
| vfunc[7]: | __cxxabiv1::__si_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const |
| vfunc[8]: | __cxxabiv1::__si_class_type_info::__do_find_public_src(long, void const*, __cxxabiv1::__class_type_info const*, void const*) const |
The Run Time Type Information for the __cxxabiv1::__si_class_type_info class is described by Table 7-19
An LSB conforming implementation shall provide the architecture specific methods for Class __cxxabiv1::__si_class_type_info specified in Table 7-20, with the full mandatory functionality as described in the referenced underlying specification.
Table 7-20. libstdcxx - Class __cxxabiv1::__si_class_type_info Function Interfaces
| __cxxabiv1::__si_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const(CXXABI_1.3) [CXXABI] |
| __cxxabiv1::__si_class_type_info::__do_find_public_src(long, void const*, __cxxabiv1::__class_type_info const*, void const*) const(CXXABI_1.3) [CXXABI] |
The virtual table for the __cxxabiv1::__vmi_class_type_info class is described by Table 7-21
Table 7-21. Primary vtable for __cxxabiv1::__vmi_class_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__vmi_class_type_info |
| vfunc[0]: | __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() |
| vfunc[1]: | __cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | __cxxabiv1::__class_type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | __cxxabiv1::__class_type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
| vfunc[6]: | __cxxabiv1::__vmi_class_type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__upcast_result&) const |
| vfunc[7]: | __cxxabiv1::__vmi_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const |
| vfunc[8]: | __cxxabiv1::__vmi_class_type_info::__do_find_public_src(long, void const*, __cxxabiv1::__class_type_info const*, void const*) const |
The Run Time Type Information for the __cxxabiv1::__vmi_class_type_info class is described by Table 7-22
An LSB conforming implementation shall provide the architecture specific methods for Class __cxxabiv1::__vmi_class_type_info specified in Table 7-23, with the full mandatory functionality as described in the referenced underlying specification.
Table 7-23. libstdcxx - Class __cxxabiv1::__vmi_class_type_info Function Interfaces
| __cxxabiv1::__vmi_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const(CXXABI_1.3) [CXXABI] |
| __cxxabiv1::__vmi_class_type_info::__do_find_public_src(long, void const*, __cxxabiv1::__class_type_info const*, void const*) const(CXXABI_1.3) [CXXABI] |
The virtual table for the __cxxabiv1::__fundamental_type_info class is described by Table 7-24
Table 7-24. Primary vtable for __cxxabiv1::__fundamental_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__fundamental_type_info |
| vfunc[0]: | __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() |
| vfunc[1]: | __cxxabiv1::__fundamental_type_info::~__fundamental_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
The Run Time Type Information for the __cxxabiv1::__fundamental_type_info class is described by Table 7-25
No external methods are defined for libstdcxx - Class __cxxabiv1::__fundamental_type_info in this part of the specification. See also the generic specification.
The virtual table for the __cxxabiv1::__pointer_to_member_type_info class is described by Table 7-26
Table 7-26. Primary vtable for __cxxabiv1::__pointer_to_member_type_info
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __cxxabiv1::__pointer_to_member_type_info |
| vfunc[0]: | __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info() |
| vfunc[1]: | __cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info() |
| vfunc[2]: | type_info::__is_pointer_p() const |
| vfunc[3]: | type_info::__is_function_p() const |
| vfunc[4]: | __cxxabiv1::__pbase_type_info::__do_catch(type_info const*, void**, unsigned int) const |
| vfunc[5]: | type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const |
| vfunc[6]: | __cxxabiv1::__pointer_to_member_type_info::__pointer_catch(__cxxabiv1::__pbase_type_info const*, void**, unsigned int) const |
The Run Time Type Information for the __cxxabiv1::__pointer_to_member_type_info class is described by Table 7-27
No external methods are defined for libstdcxx - Class __cxxabiv1::__pointer_to_member_type_info in this part of the specification. See also the generic specification.
The virtual table for the __gnu_cxx::stdio_filebuf<char, std::char_traits<char> > class is described by Table 7-28
Table 7-28. Primary vtable for __gnu_cxx::stdio_sync_filebuf<char, char_traits<char> >
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __gnu_cxx::stdio_sync_filebuf<char, char_traits<char> > |
| vfunc[0]: | Unspecified |
| vfunc[1]: | Unspecified |
| vfunc[2]: | basic_streambuf<char, char_traits<char> >::imbue(locale const&) |
| vfunc[3]: | basic_streambuf<char, char_traits<char> >::setbuf(char*, long) |
| vfunc[4]: | Unspecified |
| vfunc[5]: | Unspecified |
| vfunc[6]: | Unspecified |
| vfunc[7]: | basic_streambuf<char, char_traits<char> >::showmanyc() |
| vfunc[8]: | Unspecified |
| vfunc[9]: | Unspecified |
| vfunc[10]: | Unspecified |
| vfunc[11]: | Unspecified |
| vfunc[12]: | Unspecified |
| vfunc[13]: | Unspecified |
No external methods are defined for libstdcxx - Class __gnu_cxx::stdio_filebuf<char, std::char_traits<char> > in this part of the specification. See also the generic specification.
The virtual table for the __gnu_cxx::stdio_filebuf<wchar_t, std::char_traits<wchar_t> > class is described by Table 7-29
Table 7-29. Primary vtable for __gnu_cxx::stdio_sync_filebuf<wchar_t, char_traits<wchar_t> >
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for __gnu_cxx::stdio_sync_filebuf<wchar_t, char_traits<wchar_t> > |
| vfunc[0]: | Unspecified |
| vfunc[1]: | Unspecified |
| vfunc[2]: | basic_streambuf<wchar_t, char_traits<wchar_t> >::imbue(locale const&) |
| vfunc[3]: | basic_streambuf<wchar_t, char_traits<wchar_t> >::setbuf(wchar_t*, long) |
| vfunc[4]: | Unspecified |
| vfunc[5]: | Unspecified |
| vfunc[6]: | Unspecified |
| vfunc[7]: | basic_streambuf<wchar_t, char_traits<wchar_t> >::showmanyc() |
| vfunc[8]: | Unspecified |
| vfunc[9]: | Unspecified |
| vfunc[10]: | Unspecified |
| vfunc[11]: | Unspecified |
| vfunc[12]: | Unspecified |
| vfunc[13]: | Unspecified |
No external methods are defined for libstdcxx - Class __gnu_cxx::stdio_filebuf<wchar_t, std::char_traits<wchar_t> > in this part of the specification. See also the generic specification.
An LSB conforming implementation shall provide the architecture specific methods for Class __gnu_cxx::__pool_alloc_base specified in Table 7-30, with the full mandatory functionality as described in the referenced underlying specification.
No external methods are defined for libstdcxx - Class __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> > in this part of the specification. See also the generic specification.
No external methods are defined for libstdcxx - Class __gnu_cxx::stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> > in this part of the specification. See also the generic specification.
The virtual table for the std::exception class is described by Table 7-31
Table 7-31. Primary vtable for exception
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for exception |
| vfunc[0]: | exception::~exception() |
| vfunc[1]: | exception::~exception() |
| vfunc[2]: | exception::what() const |
The Run Time Type Information for the std::exception class is described by Table 7-32
No external methods are defined for libstdcxx - Class std::exception in this part of the specification. See also the generic specification.
The virtual table for the std::bad_typeid class is described by Table 7-33
Table 7-33. Primary vtable for bad_typeid
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for bad_typeid |
| vfunc[0]: | bad_typeid::~bad_typeid() |
| vfunc[1]: | bad_typeid::~bad_typeid() |
| vfunc[2]: | exception::what() const |
The Run Time Type Information for the std::bad_typeid class is described by Table 7-34
No external methods are defined for libstdcxx - Class std::bad_typeid in this part of the specification. See also the generic specification.
The virtual table for the std::logic_error class is described by Table 7-35
Table 7-35. Primary vtable for logic_error
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for logic_error |
| vfunc[0]: | logic_error::~logic_error() |
| vfunc[1]: | logic_error::~logic_error() |
| vfunc[2]: | logic_error::what() const |
The Run Time Type Information for the std::logic_error class is described by Table 7-36
No external methods are defined for libstdcxx - Class std::logic_error in this part of the specification. See also the generic specification.
The virtual table for the std::range_error class is described by Table 7-37
Table 7-37. Primary vtable for range_error
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for range_error |
| vfunc[0]: | range_error::~range_error() |
| vfunc[1]: | range_error::~range_error() |
| vfunc[2]: | runtime_error::what() const |
The Run Time Type Information for the std::range_error class is described by Table 7-38
No external methods are defined for libstdcxx - Class std::range_error in this part of the specification. See also the generic specification.
The virtual table for the std::domain_error class is described by Table 7-39
Table 7-39. Primary vtable for domain_error
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for domain_error |
| vfunc[0]: | domain_error::~domain_error() |
| vfunc[1]: | domain_error::~domain_error() |
| vfunc[2]: | logic_error::what() const |
The Run Time Type Information for the std::domain_error class is described by Table 7-40
No external methods are defined for libstdcxx - Class std::domain_error in this part of the specification. See also the generic specification.
The virtual table for the std::length_error class is described by Table 7-41
Table 7-41. Primary vtable for length_error
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for length_error |
| vfunc[0]: | length_error::~length_error() |
| vfunc[1]: | length_error::~length_error() |
| vfunc[2]: | logic_error::what() const |
The Run Time Type Information for the std::length_error class is described by Table 7-42
No external methods are defined for libstdcxx - Class std::length_error in this part of the specification. See also the generic specification.
The virtual table for the std::out_of_range class is described by Table 7-43
Table 7-43. Primary vtable for out_of_range
| Base Offset | 0 |
| Virtual Base Offset | 0 |
| RTTI | typeinfo for out_of_range |
| vfunc[0]: | out_of_range::~out_of_range() |
| vfunc[1]: | out_of_range::~out_of_range() |
| vfunc[2]: | logic_error::what() const |
The Run Time Type Information for the std::out_of_range class is described by Table 7-44
No external methods are defined for libstdcxx - Class std::out_of_range in this part of the specification. See also the generic specification.