diff options
author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-25 15:47:43 +0000 |
---|---|---|
committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-25 15:47:43 +0000 |
commit | 5bfb07427003f7499c419f401416232ade150501 (patch) | |
tree | c70318c3104fdbdeeae37e278eef3a2220c321b4 /gcc/c-common.c | |
parent | 22c50c9e00321bc7bf7a7b37b5854ff06b5a8e21 (diff) | |
download | gcc-5bfb07427003f7499c419f401416232ade150501.tar.gz |
PR c++/8795
* tree.h (build_method_type_directly): Declare.
* c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs.
(vector_size_helper): Likewise.
* tree.c (build_method_type_directly): New function.
(build_method_type): Use it.
PR c++/8795
* cp-tree.h (build_cplus_method_type): Remove.
* call.c (standard_conversion): Use build_method_type_directly
instead of build_cplus_method_type.
* class.c (build_clone): Likewise.
(adjust_clone_args): Likewise.
* decl.c (build_ptrmem_type): Likewise.
(grokdeclarator): Likewise.
(check_function_type): Likewise.
* decl2.c (grok_method_quals): Likewise.
(maybe_retrofit_in_chrg): Likewise.
* pt.c (copy_default_args_to_explicit_spec): Likewise.
(tsubst_function_type): Likewise.
(tsubst): Likewise.
* tree.c (build_cplus_method_type): Remove.
* typeck.c (merge_types): Use build_method_type_directly.
PR c++/8795
* g++.dg/ext/altivec-1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70773 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r-- | gcc/c-common.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c index 3089e5dbed8..b4151faf765 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -5086,6 +5086,7 @@ handle_vector_size_attribute (tree *node, tree name, tree args, while (POINTER_TYPE_P (type) || TREE_CODE (type) == FUNCTION_TYPE + || TREE_CODE (type) == METHOD_TYPE || TREE_CODE (type) == ARRAY_TYPE) type = TREE_TYPE (type); @@ -5216,12 +5217,19 @@ vector_size_helper (tree type, tree bottom) else if (TREE_CODE (type) == ARRAY_TYPE) { inner = vector_size_helper (TREE_TYPE (type), bottom); - outer = build_array_type (inner, TYPE_VALUES (type)); + outer = build_array_type (inner, TYPE_DOMAIN (type)); } else if (TREE_CODE (type) == FUNCTION_TYPE) { inner = vector_size_helper (TREE_TYPE (type), bottom); - outer = build_function_type (inner, TYPE_VALUES (type)); + outer = build_function_type (inner, TYPE_ARG_TYPES (type)); + } + else if (TREE_CODE (type) == METHOD_TYPE) + { + inner = vector_size_helper (TREE_TYPE (type), bottom); + outer = build_method_type_directly (TYPE_METHOD_BASETYPE (type), + inner, + TYPE_ARG_TYPES (type)); } else return bottom; |