diff options
| author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-12-04 17:00:04 +0000 |
|---|---|---|
| committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-12-04 17:00:04 +0000 |
| commit | 90a83261673ab9248854c91978b21c457b6d4c6a (patch) | |
| tree | 7543491b113d205817aab1d11cfba53a22a40db7 /gcc/cp/mangle.c | |
| parent | d86a32982c3ab53dd68a11a6e5edffd31c561047 (diff) | |
| download | ppe42-gcc-90a83261673ab9248854c91978b21c457b6d4c6a.tar.gz ppe42-gcc-90a83261673ab9248854c91978b21c457b6d4c6a.zip | |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37999 138bc75d-0d04-0410-961f-82ee72b054a4
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; |

