diff options
author | Tamar Christina <tamar.christina@arm.com> | 2021-08-06 12:21:05 +0100 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2021-08-06 12:21:05 +0100 |
commit | 6b0bde7eef492843426c3f6b2da229b3c1526eaa (patch) | |
tree | f9a4007c56b266703f69fc3a673e0accbdef6362 /gcc | |
parent | 3c94db20be9af3cb0376292e2d4672b515558231 (diff) | |
download | gcc-6b0bde7eef492843426c3f6b2da229b3c1526eaa.zip gcc-6b0bde7eef492843426c3f6b2da229b3c1526eaa.tar.gz gcc-6b0bde7eef492843426c3f6b2da229b3c1526eaa.tar.bz2 |
middle-end/AArch64: Fix bootstrap after vec changes
The build is broken since a3d3e8c362c2 since it's deleted the ability to pass
vec<> by value and now must be past by reference.
However some language hooks used by AArch64 were not updated and breaks the
build on AArch64. This patch updates these hooks.
gcc/c/ChangeLog:
* c-decl.c (c_simulate_enum_decl): Pass vec<> by pointer.
* c-tree.h (c_simulate_enum_decl): Likewise.
gcc/ChangeLog:
* config/aarch64/aarch64-sve-builtins.cc (register_svpattern,
register_svprfop): Pass vec<> by pointer.
* langhooks-def.h (lhd_simulate_enum_decl): Likewise.
* langhooks.c (lhd_simulate_enum_decl): Likewise.
* langhooks.h (struct lang_hooks_for_types): Likewise.
gcc/cp/ChangeLog:
* cp-objcp-common.h (cxx_simulate_enum_decl): Pass vec<> by pointer.
* decl.c (cxx_simulate_enum_decl): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c/c-decl.c | 3 | ||||
-rw-r--r-- | gcc/c/c-tree.h | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-sve-builtins.cc | 4 | ||||
-rw-r--r-- | gcc/cp/cp-objcp-common.h | 2 | ||||
-rw-r--r-- | gcc/cp/decl.c | 2 | ||||
-rw-r--r-- | gcc/langhooks-def.h | 2 | ||||
-rw-r--r-- | gcc/langhooks.c | 3 | ||||
-rw-r--r-- | gcc/langhooks.h | 2 |
8 files changed, 11 insertions, 9 deletions
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index 234ee16..221a67f 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -9379,7 +9379,7 @@ build_enumerator (location_t decl_loc, location_t loc, tree c_simulate_enum_decl (location_t loc, const char *name, - vec<string_int_pair> values) + vec<string_int_pair> *values_ptr) { location_t saved_loc = input_location; input_location = loc; @@ -9389,6 +9389,7 @@ c_simulate_enum_decl (location_t loc, const char *name, tree value_chain = NULL_TREE; string_int_pair *value; + vec<string_int_pair> values = *values_ptr; unsigned int i; FOR_EACH_VEC_ELT (values, i, value) { diff --git a/gcc/c/c-tree.h b/gcc/c/c-tree.h index ab6db38..a8a90ea 100644 --- a/gcc/c/c-tree.h +++ b/gcc/c/c-tree.h @@ -595,7 +595,7 @@ extern void finish_function (location_t = input_location); extern tree finish_struct (location_t, tree, tree, tree, class c_struct_parse_info *); extern tree c_simulate_enum_decl (location_t, const char *, - vec<string_int_pair>); + vec<string_int_pair> *); extern struct c_arg_info *build_arg_info (void); extern struct c_arg_info *get_parm_info (bool, tree); extern tree grokfield (location_t, struct c_declarator *, diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc index f44f81f..f71b287 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins.cc +++ b/gcc/config/aarch64/aarch64-sve-builtins.cc @@ -3499,7 +3499,7 @@ register_svpattern () #undef PUSH acle_svpattern = lang_hooks.types.simulate_enum_decl (input_location, - "svpattern", values); + "svpattern", &values); } /* Register the svprfop enum. */ @@ -3513,7 +3513,7 @@ register_svprfop () #undef PUSH acle_svprfop = lang_hooks.types.simulate_enum_decl (input_location, - "svprfop", values); + "svprfop", &values); } /* Implement #pragma GCC aarch64 "arm_sve.h". */ diff --git a/gcc/cp/cp-objcp-common.h b/gcc/cp/cp-objcp-common.h index 53c6e4c..f1704aa 100644 --- a/gcc/cp/cp-objcp-common.h +++ b/gcc/cp/cp-objcp-common.h @@ -38,7 +38,7 @@ extern bool cp_handle_option (size_t, const char *, HOST_WIDE_INT, int, location_t, const struct cl_option_handlers *); extern tree cxx_make_type_hook (tree_code); extern tree cxx_simulate_enum_decl (location_t, const char *, - vec<string_int_pair>); + vec<string_int_pair> *); /* Lang hooks that are shared between C++ and ObjC++ are defined here. Hooks specific to C++ or ObjC++ go in cp/cp-lang.c and objcp/objcp-lang.c, diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 6fa6b9a..f626f1e 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -16408,7 +16408,7 @@ lookup_enumerator (tree enumtype, tree name) tree cxx_simulate_enum_decl (location_t loc, const char *name, - vec<string_int_pair> values) + vec<string_int_pair> *values) { location_t saved_loc = input_location; input_location = loc; diff --git a/gcc/langhooks-def.h b/gcc/langhooks-def.h index 8b744d9..02b4681 100644 --- a/gcc/langhooks-def.h +++ b/gcc/langhooks-def.h @@ -55,7 +55,7 @@ extern void lhd_set_decl_assembler_name (tree decl); extern void lhd_overwrite_decl_assembler_name (tree decl, tree name); extern bool lhd_warn_unused_global_decl (const_tree); extern tree lhd_simulate_enum_decl (location_t, const char *, - vec<string_int_pair>); + vec<string_int_pair> *); extern tree lhd_type_for_size (unsigned precision, int unsignedp); extern void lhd_incomplete_type_error (location_t, const_tree, const_tree); extern tree lhd_type_promotes_to (tree); diff --git a/gcc/langhooks.c b/gcc/langhooks.c index d753199..48c7237 100644 --- a/gcc/langhooks.c +++ b/gcc/langhooks.c @@ -485,7 +485,7 @@ lhd_make_node (enum tree_code code) might be reusable elsewhere. */ tree lhd_simulate_enum_decl (location_t loc, const char *name, - vec<string_int_pair> values) + vec<string_int_pair> *values_ptr) { tree enumtype = lang_hooks.types.make_type (ENUMERAL_TYPE); tree enumdecl = build_decl (loc, TYPE_DECL, get_identifier (name), enumtype); @@ -493,6 +493,7 @@ lhd_simulate_enum_decl (location_t loc, const char *name, tree value_chain = NULL_TREE; string_int_pair *value; + vec<string_int_pair> values = *values_ptr; unsigned int i; FOR_EACH_VEC_ELT (values, i, value) { diff --git a/gcc/langhooks.h b/gcc/langhooks.h index 1b417a0..ffd3e0b 100644 --- a/gcc/langhooks.h +++ b/gcc/langhooks.h @@ -66,7 +66,7 @@ struct lang_hooks_for_types /* Make an enum type with the given name and values, associating them all with the given source location. */ - tree (*simulate_enum_decl) (location_t, const char *, vec<string_int_pair>); + tree (*simulate_enum_decl) (location_t, const char *, vec<string_int_pair> *); /* Return what kind of RECORD_TYPE this is, mainly for purposes of debug information. If not defined, record types are assumed to |