Skip to content

Commit

Permalink
[test] Test #pragma GCC visibility interaction with explicit instanti…
Browse files Browse the repository at this point in the history
…ations
  • Loading branch information
MaskRay committed Nov 13, 2023
1 parent fe146e9 commit abeffc9
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions clang/test/CodeGenCXX/visibility.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1007,8 +1007,8 @@ namespace test51 {
// a default symbol.

struct HIDDEN foo {};
DEFAULT foo da, db, dc, dd;
HIDDEN foo ha, hb, hc, hd;
DEFAULT foo da, db, dc, dd, de, df;
HIDDEN foo ha, hb, hc, hd, he, hf;
template<foo *z>
void DEFAULT zed() {
}
Expand Down Expand Up @@ -1036,14 +1036,26 @@ namespace test51 {
// CHECK-LABEL: define weak_odr hidden void @_ZN6test513zedIXadL_ZNS_2hcEEEEEvv(
// CHECK-HIDDEN-LABEL: define weak_odr hidden void @_ZN6test513zedIXadL_ZNS_2hcEEEEEvv(

#pragma GCC visibility push(hidden)
template void zed<&dd>();
template void zed<&hd>();
template void DEFAULT zed<&he>();
#pragma GCC visibility pop
// CHECK-LABEL: define weak_odr hidden void @_ZN6test513zedIXadL_ZNS_2ddEEEEEvv(
// CHECK-LABEL: define weak_odr hidden void @_ZN6test513zedIXadL_ZNS_2hdEEEEEvv(
// CHECK-LABEL: define weak_odr void @_ZN6test513zedIXadL_ZNS_2heEEEEEvv(
// CHECK-HIDDEN-LABEL: define weak_odr hidden void @_ZN6test513zedIXadL_ZNS_2ddEEEEEvv(
// CHECK-HIDDEN-LABEL: define weak_odr hidden void @_ZN6test513zedIXadL_ZNS_2hdEEEEEvv(
// CHECK-HIDDEN-LABEL: define weak_odr void @_ZN6test513zedIXadL_ZNS_2heEEEEEvv(

void use() {
zed<&dd>();
zed<&hd>();
zed<&df>();
zed<&hf>();
}
// CHECK-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2ddEEEEEvv(
// CHECK-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2hdEEEEEvv(
// CHECK-HIDDEN-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2ddEEEEEvv(
// CHECK-HIDDEN-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2hdEEEEEvv(
// CHECK-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2dfEEEEEvv(
// CHECK-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2hfEEEEEvv(
// CHECK-HIDDEN-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2dfEEEEEvv(
// CHECK-HIDDEN-LABEL: define linkonce_odr hidden void @_ZN6test513zedIXadL_ZNS_2hfEEEEEvv(
}

namespace test52 {
Expand Down

0 comments on commit abeffc9

Please sign in to comment.