FreeBSD/contrib/gcc/cp/decl.c
/* Return the COMDAT group into which DECL should be placed.  */
Return the COMDAT group into which DECL should be placed.
Return the COMDAT group into which DECL should be placed .
const char *
cxx_comdat_group (tree decl)
{
  tree name;
  if (TREE_CODE (decl) == VAR_DECL && DECL_VTABLE_OR_VTT_P (decl))
    name = DECL_ASSEMBLER_NAME (CLASSTYPE_VTABLES (DECL_CONTEXT (decl)));
  else
    {
      while (DECL_THUNK_P (decl))
	{
	  tree target = THUNK_TARGET (decl);
	  if (TARGET_USE_LOCAL_THUNK_ALIAS_P (target)
	      && DECL_SECTION_NAME (target) != NULL
	      && DECL_ONE_ONLY (target))
	    decl = target;
	  else
	    break;
	}
      name = DECL_ASSEMBLER_NAME (decl);
    }
  return IDENTIFIER_POINTER (name);
}
const char * cxx_comdat_group ( tree decl ) { tree name ; if ( TREE_CODE ( decl ) == VAR_DECL && DECL_VTABLE_OR_VTT_P ( decl ) ) name = DECL_ASSEMBLER_NAME ( CLASSTYPE_VTABLES ( DECL_CONTEXT ( decl ) ) ) ; else { while ( DECL_THUNK_P ( decl ) ) { tree target = THUNK_TARGET ( decl ) ; if ( TARGET_USE_LOCAL_THUNK_ALIAS_P ( target ) && DECL_SECTION_NAME ( target ) != NULL && DECL_ONE_ONLY ( target ) ) decl = target ; else break ; } name = DECL_ASSEMBLER_NAME ( decl ) ; } return IDENTIFIER_POINTER ( name ) ; }
Return the COMDAT group into which DECL should be placed.
Return the COMDAT group into which DECL should be placed .
/* Virtual tables, construction virtual tables, and virtual table
     tables all go in a single COMDAT group, named after the primary
     virtual table.  */ /* For all other DECLs, the COMDAT group is the mangled name of the
     declaration itself.  */ /* If TARGET_USE_LOCAL_THUNK_ALIAS_P, use_thunk puts the thunk
	     into the same section as the target function.  In that case
	     we must return target's name.  */