gccint: C++ ABI
1
1 18.28 C++ ABI parameters
1 ========================
1
1 -- Target Hook: tree TARGET_CXX_GUARD_TYPE (void)
1 Define this hook to override the integer type used for guard
1 variables. These are used to implement one-time construction of
1 static objects. The default is long_long_integer_type_node.
1
1 -- Target Hook: bool TARGET_CXX_GUARD_MASK_BIT (void)
1 This hook determines how guard variables are used. It should
1 return 'false' (the default) if the first byte should be used. A
1 return value of 'true' indicates that only the least significant
1 bit should be used.
1
1 -- Target Hook: tree TARGET_CXX_GET_COOKIE_SIZE (tree TYPE)
1 This hook returns the size of the cookie to use when allocating an
1 array whose elements have the indicated TYPE. Assumes that it is
1 already known that a cookie is needed. The default is 'max(sizeof
1 (size_t), alignof(type))', as defined in section 2.7 of the
1 IA64/Generic C++ ABI.
1
1 -- Target Hook: bool TARGET_CXX_COOKIE_HAS_SIZE (void)
1 This hook should return 'true' if the element size should be stored
1 in array cookies. The default is to return 'false'.
1
1 -- Target Hook: int TARGET_CXX_IMPORT_EXPORT_CLASS (tree TYPE, int
1 IMPORT_EXPORT)
1 If defined by a backend this hook allows the decision made to
1 export class TYPE to be overruled. Upon entry IMPORT_EXPORT will
1 contain 1 if the class is going to be exported, -1 if it is going
1 to be imported and 0 otherwise. This function should return the
1 modified value and perform any other actions necessary to support
1 the backend's targeted operating system.
1
1 -- Target Hook: bool TARGET_CXX_CDTOR_RETURNS_THIS (void)
1 This hook should return 'true' if constructors and destructors
1 return the address of the object created/destroyed. The default is
1 to return 'false'.
1
1 -- Target Hook: bool TARGET_CXX_KEY_METHOD_MAY_BE_INLINE (void)
1 This hook returns true if the key method for a class (i.e., the
1 method which, if defined in the current translation unit, causes
1 the virtual table to be emitted) may be an inline function. Under
1 the standard Itanium C++ ABI the key method may be an inline
1 function so long as the function is not declared inline in the
1 class definition. Under some variants of the ABI, an inline
1 function can never be the key method. The default is to return
1 'true'.
1
1 -- Target Hook: void TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY (tree
1 DECL)
1 DECL is a virtual table, virtual table table, typeinfo object, or
1 other similar implicit class data object that will be emitted with
1 external linkage in this translation unit. No ELF visibility has
1 been explicitly specified. If the target needs to specify a
1 visibility other than that of the containing class, use this hook
1 to set 'DECL_VISIBILITY' and 'DECL_VISIBILITY_SPECIFIED'.
1
1 -- Target Hook: bool TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT (void)
1 This hook returns true (the default) if virtual tables and other
1 similar implicit class data objects are always COMDAT if they have
1 external linkage. If this hook returns false, then class data for
1 classes whose virtual table will be emitted in only one translation
1 unit will not be COMDAT.
1
1 -- Target Hook: bool TARGET_CXX_LIBRARY_RTTI_COMDAT (void)
1 This hook returns true (the default) if the RTTI information for
1 the basic types which is defined in the C++ runtime should always
1 be COMDAT, false if it should not be COMDAT.
1
1 -- Target Hook: bool TARGET_CXX_USE_AEABI_ATEXIT (void)
1 This hook returns true if '__aeabi_atexit' (as defined by the ARM
1 EABI) should be used to register static destructors when
1 '-fuse-cxa-atexit' is in effect. The default is to return false to
1 use '__cxa_atexit'.
1
1 -- Target Hook: bool TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT (void)
1 This hook returns true if the target 'atexit' function can be used
1 in the same manner as '__cxa_atexit' to register C++ static
1 destructors. This requires that 'atexit'-registered functions in
1 shared libraries are run in the correct order when the libraries
1 are unloaded. The default is to return false.
1
1 -- Target Hook: void TARGET_CXX_ADJUST_CLASS_AT_DEFINITION (tree TYPE)
1 TYPE is a C++ class (i.e., RECORD_TYPE or UNION_TYPE) that has just
1 been defined. Use this hook to make adjustments to the class (eg,
1 tweak visibility or perform any other required target
1 modifications).
1
1 -- Target Hook: tree TARGET_CXX_DECL_MANGLING_CONTEXT (const_tree DECL)
1 Return target-specific mangling context of DECL or 'NULL_TREE'.
1