contrib/gcc-4.7/gcc/cp/mangle.c
/* Return an identifier for the mangled unqualified name for a
   conversion operator to TYPE.  This mangling is not specified by the
   ABI spec; it is only used internally.  */
Return an identifier for the mangled unqualified name for a
conversion operator to TYPE.  This mangling is not specified by the
ABI spec; it is only used internally.
Return an identifier for the mangled unqualified name for a conversion operator to TYPE . This mangling is not specified by the ABI spec ; it is only used internally .
tree
mangle_conv_op_name_for_type (const tree type)
{
  void **slot;
  tree identifier;
  if (type == error_mark_node)
    return error_mark_node;
  if (conv_type_names == NULL)
    conv_type_names = htab_create_ggc (31, &hash_type, &compare_type, NULL);
  slot = htab_find_slot_with_hash (conv_type_names, type,
				   (hashval_t) TYPE_UID (type), INSERT);
  identifier = (tree)*slot;
  if (!identifier)
    {
      char buffer[64];
      sprintf (buffer, "operator %lu",
	       (unsigned long) htab_elements (conv_type_names));
      identifier = get_identifier (buffer);
      *slot = identifier;
      TREE_TYPE (identifier) = type;
      IDENTIFIER_OPNAME_P (identifier) = 1;
      IDENTIFIER_TYPENAME_P (identifier) = 1;
    }
  return identifier;
}
tree mangle_conv_op_name_for_type ( const tree type ) { void * * slot ; tree identifier ; if ( type == error_mark_node ) return error_mark_node ; if ( conv_type_names == NULL ) conv_type_names = htab_create_ggc ( 31 , & hash_type , & compare_type , NULL ) ; slot = htab_find_slot_with_hash ( conv_type_names , type , ( hashval_t ) TYPE_UID ( type ) , INSERT ) ; identifier = ( tree ) * slot ; if ( ! identifier ) { char buffer [ 64 ] ; sprintf ( buffer , " " , ( unsigned long ) htab_elements ( conv_type_names ) ) ; identifier = get_identifier ( buffer ) ; * slot = identifier ; TREE_TYPE ( identifier ) = type ; IDENTIFIER_OPNAME_P ( identifier ) = 1 ; IDENTIFIER_TYPENAME_P ( identifier ) = 1 ; } return identifier ; }
Return an identifier for the mangled unqualified name for a
conversion operator to TYPE.
Return an identifier for the mangled unqualified name for a conversion operator to TYPE .
/* Create a unique name corresponding to TYPE.  */ /* Hang TYPE off the identifier so it can be found easily later
	 when performing conversions.  */ /* Set bits on the identifier so we know later it's a conversion.  */