mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 12:49:35 +08:00
mangle.c (mangle_conv_op_name_for_type): Don't use `__op' prefix.
* mangle.c (mangle_conv_op_name_for_type): Don't use `__op' prefix. From-SVN: r37678
This commit is contained in:
parent
dc60a41bed
commit
6e1b44bce7
@ -1,5 +1,8 @@
|
||||
2000-11-22 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
|
||||
prefix.
|
||||
|
||||
* pt.c (do_decl_instantiate): Explicitly clone constructors and
|
||||
destructors that haven't already been cloned.
|
||||
|
||||
|
@ -2226,15 +2226,7 @@ mangle_thunk (fn_decl, offset, vcall_offset)
|
||||
|
||||
/* 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.
|
||||
|
||||
For compatibility with existing conversion operator mechanisms,
|
||||
the mangled form is `__op<type>' where <type> is the mangled
|
||||
representation of TYPE.
|
||||
|
||||
FIXME: Though identifiers with starting with __op are reserved for
|
||||
the implementation, it would eventually be nice to use inaccessible
|
||||
names for these operators. */
|
||||
ABI spec; it is only used internally. */
|
||||
|
||||
tree
|
||||
mangle_conv_op_name_for_type (type)
|
||||
@ -2245,10 +2237,10 @@ mangle_conv_op_name_for_type (type)
|
||||
/* Build the mangling for TYPE. */
|
||||
const char *mangled_type = mangle_type_string (type);
|
||||
/* Allocate a temporary buffer for the complete name. */
|
||||
char *op_name = (char *) xmalloc (strlen (OPERATOR_TYPENAME_FORMAT)
|
||||
char *op_name = (char *) xmalloc (strlen ("operator ")
|
||||
+ strlen (mangled_type) + 1);
|
||||
/* Assemble the mangling. */
|
||||
strcpy (op_name, OPERATOR_TYPENAME_FORMAT);
|
||||
strcpy (op_name, "operator ");
|
||||
strcat (op_name, mangled_type);
|
||||
/* Find or create an identifier. */
|
||||
identifier = get_identifier (op_name);
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
// Contributed by Nathan Sidwell 21 Nov 1999 <nathan@acm.org>
|
||||
|
||||
// make sure __FUNCTION__ and __PRETTY_FUNCTION__ work in member functions
|
||||
@ -67,7 +67,7 @@ X::operator int ()
|
||||
printf ("__FUNCTION__ %s\n", function);
|
||||
printf ("__PRETTY_FUNCTION__ %s\n", pretty);
|
||||
|
||||
if (strcmp (function, "__opi"))
|
||||
if (strcmp (function, "operator i"))
|
||||
bad = true;
|
||||
if (strcmp (pretty, "X::operator int()"))
|
||||
bad = true;
|
||||
|
@ -1,9 +1,8 @@
|
||||
// Build don't link:
|
||||
// crash test - XFAIL *-*-*
|
||||
|
||||
// Reported by Harri Porten <porten@tu-harburg.de>
|
||||
// Simplified for testsuite by Alexandre Oliva
|
||||
|
||||
struct foo { operator long double(); };
|
||||
int bar(int __opr); // gets bogus error - XFAIL *-*-*
|
||||
int bar(int __ope); // gets bogus error - XFAIL *-*-*
|
||||
int bar(int __opr);
|
||||
int bar(int __ope);
|
||||
|
Loading…
Reference in New Issue
Block a user