Next: , Previous: PCH Target, Up: Target Macros


13.26 C++ ABI parameters

— Target Hook: tree TARGET_CXX_GUARD_TYPE (void)

Define this hook to override the integer type used for guard variables. These are used to implement one-time construction of static objects. The default is long_long_integer_type_node.

— Target Hook: bool TARGET_CXX_GUARD_MASK_BIT (void)

This hook determines how guard variables are used. It should return false (the default) if first byte should be used. A return value of true indicates the least significant bit should be used.

— Target Hook: tree TARGET_CXX_GET_COOKIE_SIZE (tree type)

This hook returns the size of the cookie to use when allocating an array whose elements have the indicated type. Assumes that it is already known that a cookie is needed. The default is max(sizeof (size_t), alignof(type)), as defined in section 2.7 of the IA64/Generic C++ ABI.

— Target Hook: bool TARGET_CXX_COOKIE_HAS_SIZE (void)

This hook should return true if the element size should be stored in array cookies. The default is to return false.

— Target Hook: int TARGET_CXX_IMPORT_EXPORT_CLASS (tree type, int import_export)

If defined by a backend this hook allows the decision made to export class type to be overruled. Upon entry import_export will contain 1 if the class is going to be exported, −1 if it is going to be imported and 0 otherwise. This function should return the modified value and perform any other actions necessary to support the backend's targeted operating system.

— Target Hook: bool TARGET_CXX_CDTOR_RETURNS_THIS (void)

This hook should return true if constructors and destructors return the address of the object created/destroyed. The default is to return false.

— Target Hook: bool TARGET_CXX_KEY_METHOD_MAY_BE_INLINE (void)

This hook returns true if the key method for a class (i.e., the method which, if defined in the current translation unit, causes the virtual table to be emitted) may be an inline function. Under the standard Itanium C++ ABI the key method may be an inline function so long as the function is not declared inline in the class definition. Under some variants of the ABI, an inline function can never be the key method. The default is to return true.

— Target Hook: bool TARGET_CXX_EXPORT_CLASS_DATA (void)

If this hook returns false (the default), then virtual tables and RTTI data structures will have the ELF visibility of their containing class. If this hook returns true, then these data structures will have ELF “default” visibility, independently of the visibility of the containing class.