]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: Fix function multiversioning mangling
authorAndrew Carlotti <andrew.carlotti@arm.com>
Wed, 31 Jan 2024 16:28:12 +0000 (16:28 +0000)
committerAndrew Carlotti <andrew.carlotti@arm.com>
Tue, 6 Feb 2024 15:10:17 +0000 (15:10 +0000)
commit8ec2f1922a14ee3636840d1ebc1c40d26e6043a4
tree18aa427b3bb136ae0035cdc680bd82b0a0c967cd
parentdf9f6b934886f51c0c07220d1ee38874b69646c7
aarch64: Fix function multiversioning mangling

It would be neater if the middle end for target_clones used a target
hook for version name mangling, so we only do version name mangling
once.  However, that would require more intrusive refactoring that will
have to wait till Stage 1.

gcc/ChangeLog:

* config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
Move before new caller, and add ".default" suffix.
(get_suffixed_assembler_name): New.
(make_resolver_func): Use get_suffixed_assembler_name.
(aarch64_generate_version_dispatcher_body): Redo name mangling.

gcc/testsuite/ChangeLog:

* g++.target/aarch64/mv-symbols1.C: New test.
* g++.target/aarch64/mv-symbols2.C: Ditto.
* g++.target/aarch64/mv-symbols3.C: Ditto.
* g++.target/aarch64/mv-symbols4.C: Ditto.
* g++.target/aarch64/mv-symbols5.C: Ditto.
* g++.target/aarch64/mvc-symbols1.C: Ditto.
* g++.target/aarch64/mvc-symbols2.C: Ditto.
* g++.target/aarch64/mvc-symbols3.C: Ditto.
* g++.target/aarch64/mvc-symbols4.C: Ditto.
gcc/config/aarch64/aarch64.cc
gcc/testsuite/g++.target/aarch64/mv-symbols1.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mv-symbols2.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mv-symbols3.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mv-symbols4.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mv-symbols5.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mvc-symbols1.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mvc-symbols2.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mvc-symbols3.C [new file with mode: 0644]
gcc/testsuite/g++.target/aarch64/mvc-symbols4.C [new file with mode: 0644]