1 // REQUIRES: x86-registered-target 2 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs \ 3 // RUN: -fvisibility hidden %s | FileCheck --check-prefix=CHECK-CMD-HIDDEN %s 4 5 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs \ 6 // RUN: -fvisibility hidden %s | FileCheck --check-prefix=CHECK-CMD-HIDDEN %s 7 8 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \ 9 // RUN: FileCheck --check-prefix=CHECK-CMD %s 10 11 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \ 12 // RUN: FileCheck --check-prefix=CHECK-CMD %s 13 14 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \ 15 // RUN: FileCheck --check-prefix=CHECK-CMD2 %s 16 17 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \ 18 // RUN: FileCheck --check-prefix=CHECK-CMD2 %s 19 20 // RUN: %clang -target x86_64-unknown-linux-gnu -o - -c %s | llvm-readelf -s - 2>&1 | \ 21 // RUN: FileCheck -check-prefix=CHECK-SYMBOLS %s 22 23 // Always Be Hidden: 24 // CHECK-CMD-HIDDEN-NOT: _Z6hiddenv 25 // CHECK-CMD2-NOT: _Z6hiddenv 26 __attribute__((visibility("hidden"))) void hidden() {} 27 28 // Always Be Visible: 29 // CHECK-CMD-HIDDEN: _Z9nothiddenv 30 // CHECK-CMD-DAG: _Z9nothiddenv 31 __attribute__((visibility("default"))) void nothidden() {} 32 33 // Do Whatever -fvisibility says: 34 // CHECK-CMD-HIDDEN-NOT: _Z10cmdVisiblev 35 // CHECK-CMD-DAG: _Z10cmdVisiblev 36 void cmdVisible() {} 37 38 // CHECK-SYMBOLS-DAG: DEFAULT {{.*}} _Z10cmdVisiblev 39 // CHECK-SYMBOLS-DAG: HIDDEN {{.*}} _Z6hiddenv 40 // CHECK-SYMBOLS-DAG: DEFAULT {{.*}} _Z9nothiddenv 41