diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2000-12-04 12:00:04 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-12-04 12:00:04 -0500 |
commit | c00996a3ea28127b7392876352ad0dd32e00e1ca (patch) | |
tree | 7543491b113d205817aab1d11cfba53a22a40db7 /gcc/cp/mangle.c | |
parent | d611079baa5b039340541d7f1576a3e520280b4f (diff) | |
download | gcc-c00996a3ea28127b7392876352ad0dd32e00e1ca.tar.gz |
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/mangle.c')
-rw-r--r-- | gcc/cp/mangle.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 33eeefc447a..001a9e8f36f 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -1236,10 +1236,9 @@ write_local_name (function, local_entity, entity) ::= <CV-qualifier> ::= P <type> # pointer-to ::= R <type> # reference-to - ::= C <type> # complex pair (C 2000) [not supported] + ::= C <type> # complex pair (C 2000) ::= G <type> # imaginary (C 2000) [not supported] ::= U <source-name> <type> # vendor extended type qualifier - [not supported] TYPE is a type node. */ @@ -1349,6 +1348,11 @@ write_type (type) write_pointer_to_member_type (build_pointer_type (type)); break; + case VECTOR_TYPE: + write_string ("U8__vector"); + write_type (TREE_TYPE (type)); + break; + default: my_friendly_abort (20000409); } @@ -1416,7 +1420,8 @@ write_CV_qualifiers_for_type (type) ::= f # float ::= d # double ::= e # long double, __float80 - ::= g # __float128 [not supported] */ + ::= g # __float128 [not supported] + ::= u <source-name> # vendor extended type */ static void write_builtin_type (type) @@ -1446,6 +1451,7 @@ write_builtin_type (type) size_t itk; /* Assume TYPE is one of the shared integer type nodes. Find it in the array of these nodes. */ + iagain: for (itk = 0; itk < itk_none; ++itk) if (type == integer_types[itk]) { @@ -1455,8 +1461,14 @@ write_builtin_type (type) } if (itk == itk_none) - /* Couldn't find this type. */ - my_friendly_abort (20000408); + { + tree t = type_for_mode (TYPE_MODE (type), TREE_UNSIGNED (type)); + if (type == t) + /* Couldn't find this type. */ + my_friendly_abort (20000408); + type = t; + goto iagain; + } } break; |