]> gcc.gnu.org Git - gcc.git/commit
aarch64: Fix GTY markup for arm_sve.h [PR106491]
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 21 Sep 2022 13:17:15 +0000 (14:17 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 21 Sep 2022 13:17:15 +0000 (14:17 +0100)
commitc77cd8d782d65864fb7f13119a1e88cb79cfcd9f
tree5cedc0cb749bfe12dda2954eed5a4e3100dcb41e
parent34c42bd7032436dbce0ce128a2950be9cc44ff67
aarch64: Fix GTY markup for arm_sve.h [PR106491]

It turns out that GTY(()) markers in definitions like:

  GTY(()) tree scalar_types[NUM_VECTOR_TYPES];

are not effective and are silently ignored.  The GTY(()) has
to come after an extern or static.

The externs associated with the SVE ACLE GTY variables are in
aarch64-sve-builtins.h.  This file is not in tm_include_list because
we don't want every target-facing file to include it.  It therefore
isn't in the list of GC header files either.

In this case that's a blessing in disguise, since the variables
belong to a namespace and gengtype doesn't understand namespaces.
I think the fix is instead to add an extra extern before each
variable declaration, similarly to varasm.cc and vtable-verify.cc.
(This works due to a "using namespace" at the end of the file.)

gcc/
PR target/106491
* config/aarch64/aarch64-sve-builtins.cc (scalar_types)
(acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
markup to (new) extern declarations instead of to the main
definition.

(cherry picked from commit 6bf5a704d36243c4c04b17a9408ebe881beb0051)
gcc/config/aarch64/aarch64-sve-builtins.cc
This page took 0.056705 seconds and 5 git commands to generate.