llvm-project/clang/test/CodeGenCXX/RelativeVTablesABI
Fangrui Song d1fd72343c Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions
The idea is that the CC1 default for ELF should set dso_local on default
visibility external linkage definitions in the default -mrelocation-model pic
mode (-fpic/-fPIC) to match COFF/Mach-O and make output IR similar.

The refactoring is made available by 2820a2ca3a.

Currently only x86 supports local aliases. We move the decision to the driver.
There are three CC1 states:

* -fsemantic-interposition: make some linkages interposable and make default visibility external linkage definitions dso_preemptable.
* (default): selected if the target supports .Lfoo$local: make default visibility external linkage definitions dso_local
* -fhalf-no-semantic-interposition: if neither option is set or the target does not support .Lfoo$local: like -fno-semantic-interposition but local aliases are not used. So references can be interposed if not optimized out.

Add -fhalf-no-semantic-interposition to a few tests using the half-based semantic interposition behavior.
2020-12-31 13:59:45 -08:00
..
available_externally-vtable.cpp [clang] Frontend components for the relative vtables ABI (round 2) 2020-06-11 11:17:08 -07:00
child-inheritted-from-parent-in-comdat.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
child-vtable-in-comdat.cpp [clang][RelativeVTablesABI] Use dso_local_equivalent rather than emitting stubs 2020-11-30 16:02:35 -08:00
cross-translation-unit-1.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
cross-translation-unit-2.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
cross-tu-header.h [clang] Frontend components for the relative vtables ABI (round 2) 2020-06-11 11:17:08 -07:00
diamond-inheritance.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
diamond-virtual-inheritance.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
dynamic-cast.cpp [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
inheritted-virtual-function.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
inline-virtual-function.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
inlined-key-function.cpp [clang][RelativeVTablesABI] Use dso_local_equivalent rather than emitting stubs 2020-11-30 16:02:35 -08:00
member-function-pointer.cpp [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
multiple-inheritance.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
no-alias-when-dso-local.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
override-pure-virtual-method.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
overriden-virtual-function.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
parent-and-child-in-comdats.cpp [clang][RelativeVTablesABI] Use dso_local_equivalent rather than emitting stubs 2020-11-30 16:02:35 -08:00
parent-vtable-in-comdat.cpp [clang][RelativeVTablesABI] Use dso_local_equivalent rather than emitting stubs 2020-11-30 16:02:35 -08:00
relative-vtables-flag.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
simple-vtable-definition.cpp Refactor how -fno-semantic-interposition sets dso_local on default visibility external linkage definitions 2020-12-31 13:59:45 -08:00
thunk-mangling.cpp [clang] Frontend components for the relative vtables ABI (round 2) 2020-06-11 11:17:08 -07:00
type-info.cpp [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
vbase-offset.cpp [CodeGen] Apply 'nonnull' and 'dereferenceable(N)' to 'this' pointer 2020-11-16 17:39:17 -08:00
virtual-function-call.cpp [test] Add {{.*}} to make ELF tests immune to dso_local/dso_preemptable/(none) differences 2020-12-31 00:27:11 -08:00
vtable-hidden-when-in-comdat.cpp [clang] Frontend components for the relative vtables ABI (round 2) 2020-06-11 11:17:08 -07:00