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