aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/method.c
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2000-12-04 12:00:04 -0500
committerJason Merrill <jason@gcc.gnu.org>2000-12-04 12:00:04 -0500
commitc00996a3ea28127b7392876352ad0dd32e00e1ca (patch)
tree7543491b113d205817aab1d11cfba53a22a40db7 /gcc/cp/method.c
parentd611079baa5b039340541d7f1576a3e520280b4f (diff)
downloadgcc-c00996a3ea28127b7392876352ad0dd32e00e1ca.zip
gcc-c00996a3ea28127b7392876352ad0dd32e00e1ca.tar.gz
gcc-c00996a3ea28127b7392876352ad0dd32e00e1ca.tar.bz2
mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
* mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". (write_builtin_type): Pass intSI_type_node and the like through type_for_mode. * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. Pass intSI_type_node and the like through type_for_mode. * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. * pt.c (tsubst, unify): Likewise. * tree.c (walk_tree): Likewise. * error.c (dump_type): Likewise. (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. * Make-lang.in: Tweak top comment for emacs. (cp/TAGS): Restore. * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. * pt.c (tsubst_decl): Call clone_function_decl here. (do_decl_instantiation): Not here. * class.c (clone_function_decl): Robustify. * decl.c (store_bindings): Only search in the non modified old_bindings for duplicates. From-SVN: r37999
Diffstat (limited to 'gcc/cp/method.c')
-rw-r--r--gcc/cp/method.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index 4f2e58d..4c59822 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1313,6 +1313,8 @@ process_overload_item (parmtype, extra_Gcode)
tree parmtype;
int extra_Gcode;
{
+ tree tmp;
+
numeric_output_need_bar = 0;
/* Our caller should have already handed any qualifiers, so pull out the
@@ -1421,6 +1423,7 @@ process_overload_item (parmtype, extra_Gcode)
}
case INTEGER_TYPE:
+ iagain:
if (parmtype == integer_type_node
|| parmtype == unsigned_type_node
|| parmtype == java_int_type_node)
@@ -1450,6 +1453,14 @@ process_overload_item (parmtype, extra_Gcode)
OB_PUTC ('x');
else if (parmtype == java_boolean_type_node)
OB_PUTC ('b');
+ /* Handle intSI_type_node and such like their C++ equivalents. */
+ else if (tmp = type_for_mode (TYPE_MODE (parmtype),
+ TREE_UNSIGNED (parmtype)),
+ parmtype != tmp)
+ {
+ parmtype = tmp;
+ goto iagain;
+ }
#if HOST_BITS_PER_WIDE_INT >= 64
else
{
@@ -1483,6 +1494,11 @@ process_overload_item (parmtype, extra_Gcode)
build_mangled_name_for_type (TREE_TYPE (parmtype));
break;
+ case VECTOR_TYPE:
+ OB_PUTC ('o');
+ build_mangled_name_for_type (TREE_TYPE (parmtype));
+ break;
+
case VOID_TYPE:
OB_PUTC ('v');
break;