FreeBSD/contrib/gcc/cp/call.c
/* Return the NAME, as a C string.  The NAME indicates a function that
   is a member of TYPE.  *FREE_P is set to true if the caller must
   free the memory returned.

   Rather than go through all of this, we should simply set the names
   of constructors and destructors appropriately, and dispense with
   ctor_identifier, dtor_identifier, etc.  */
Return the NAME, as a C string.  The NAME indicates a function that
is a member of TYPE.  *FREE_P is set to true if the caller must
free the memory returned.

Rather than go through all of this, we should simply set the names
of constructors and destructors appropriately, and dispense with
ctor_identifier, dtor_identifier, etc.
Return the NAME as a C string . The NAME indicates a function that is a member of TYPE . * FREE_P is set to true if the caller must free the memory returned . Rather than go through all of this we should simply set the names of constructors and destructors appropriately and dispense with ctor_identifier dtor_identifier etc .
static char *
name_as_c_string (tree name, tree type, bool *free_p)
{
  char *pretty_name;
  *free_p = false;
  if (IDENTIFIER_CTOR_OR_DTOR_P (name))
    {
      pretty_name
	= (char *) IDENTIFIER_POINTER (constructor_name (type));
      if (name == complete_dtor_identifier
	  || name == base_dtor_identifier
	  || name == deleting_dtor_identifier)
	{
	  pretty_name = concat ("~", pretty_name, NULL);
	  *free_p = true;
	}
    }
  else if (IDENTIFIER_TYPENAME_P (name))
    {
      pretty_name = concat ("operator ",
			    type_as_string (TREE_TYPE (name),
					    TFF_PLAIN_IDENTIFIER),
			    NULL);
      *free_p = true;
    }
  else
    pretty_name = (char *) IDENTIFIER_POINTER (name);
  return pretty_name;
}
static char * name_as_c_string ( tree name , tree type , bool * free_p ) { char * pretty_name ; * free_p = false ; if ( IDENTIFIER_CTOR_OR_DTOR_P ( name ) ) { pretty_name = ( char * ) IDENTIFIER_POINTER ( constructor_name ( type ) ) ; if ( name == complete_dtor_identifier || name == base_dtor_identifier || name == deleting_dtor_identifier ) { pretty_name = concat ( " " , pretty_name , NULL ) ; * free_p = true ; } } else if ( IDENTIFIER_TYPENAME_P ( name ) ) { pretty_name = concat ( " " , type_as_string ( TREE_TYPE ( name ) , TFF_PLAIN_IDENTIFIER ) , NULL ) ; * free_p = true ; } else pretty_name = ( char * ) IDENTIFIER_POINTER ( name ) ; return pretty_name ; }
Return the NAME, as a C string.
Return the NAME as a C string .
/* Assume that we will not allocate memory.  */ /* Constructors and destructors are special.  */ /* For a destructor, add the '~'.  */ /* Remember that we need to free the memory allocated.  */ /* Remember that we need to free the memory allocated.  */