blob: 1f0e921f5197ec576c10ecceb3cf64723b9989a9 [file] [log] [blame]
Puyan Lotfi678e19d2019-06-20 18:28:21 +00001// REQUIRES: x86-registered-target
Puyan Lotfi68f29da2019-06-20 16:59:48 +00002// RUN: %clang -target x86_64-unknown-linux-gnu -o - -emit-interface-stubs \
Puyan Lotfi926f4f72019-08-22 23:44:34 +00003// RUN: -interface-stub-version=experimental-ifs-v1 -fvisibility=hidden \
Puyan Lotfi68f29da2019-06-20 16:59:48 +00004// RUN: %s | FileCheck --check-prefix=CHECK-CMD-HIDDEN %s
5
6// RUN: %clang -target x86_64-unknown-linux-gnu -o - -emit-interface-stubs \
Puyan Lotfi926f4f72019-08-22 23:44:34 +00007// RUN: -interface-stub-version=experimental-ifs-v1 -fvisibility=hidden \
Puyan Lotfi68f29da2019-06-20 16:59:48 +00008// RUN: %s | FileCheck --check-prefix=CHECK-CMD-HIDDEN %s
9
10// RUN: %clang -target x86_64-unknown-linux-gnu -o - -emit-interface-stubs \
Puyan Lotfi926f4f72019-08-22 23:44:34 +000011// RUN: -interface-stub-version=experimental-ifs-v1 %s | \
Puyan Lotfi68f29da2019-06-20 16:59:48 +000012// RUN: FileCheck --check-prefix=CHECK-CMD %s
13
14// RUN: %clang -target x86_64-unknown-linux-gnu -o - -emit-interface-stubs \
Puyan Lotfi926f4f72019-08-22 23:44:34 +000015// RUN: -interface-stub-version=experimental-ifs-v1 %s | \
Puyan Lotfi68f29da2019-06-20 16:59:48 +000016// RUN: FileCheck --check-prefix=CHECK-CMD %s
17
18// RUN: %clang -target x86_64-unknown-linux-gnu -o - -emit-interface-stubs \
Puyan Lotfi926f4f72019-08-22 23:44:34 +000019// RUN: -interface-stub-version=experimental-ifs-v1 %s | \
Puyan Lotfi68f29da2019-06-20 16:59:48 +000020// RUN: FileCheck --check-prefix=CHECK-CMD2 %s
21
22// RUN: %clang -target x86_64-unknown-linux-gnu -o - -emit-interface-stubs \
Puyan Lotfi926f4f72019-08-22 23:44:34 +000023// RUN: -interface-stub-version=experimental-ifs-v1 %s | \
Puyan Lotfi68f29da2019-06-20 16:59:48 +000024// RUN: FileCheck --check-prefix=CHECK-CMD2 %s
25
26// RUN: %clang -target x86_64-unknown-linux-gnu -o - -c %s | llvm-readelf -s - 2>&1 | \
27// RUN: FileCheck -check-prefix=CHECK-SYMBOLS %s
28
29// Always Be Hidden:
30// CHECK-CMD-HIDDEN-NOT: _Z6hiddenv
31// CHECK-CMD2-NOT: _Z6hiddenv
32__attribute__((visibility("hidden"))) void hidden() {}
33
34// Always Be Visible:
35// CHECK-CMD-HIDDEN: _Z9nothiddenv
36// CHECK-CMD-DAG: _Z9nothiddenv
37__attribute__((visibility("default"))) void nothidden() {}
38
39// Do Whatever -fvisibility says:
40// CHECK-CMD-HIDDEN-NOT: _Z10cmdVisiblev
41// CHECK-CMD-DAG: _Z10cmdVisiblev
42void cmdVisible() {}
43
44// CHECK-SYMBOLS-DAG: DEFAULT {{.*}} _Z10cmdVisiblev
45// CHECK-SYMBOLS-DAG: HIDDEN {{.*}} _Z6hiddenv
46// CHECK-SYMBOLS-DAG: DEFAULT {{.*}} _Z9nothiddenv