41 lines · cpp
1// REQUIRES: x86-registered-target2// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs \3// RUN: -fvisibility=hidden %s | FileCheck --check-prefix=CHECK-CMD-HIDDEN %s4 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 %s7 8// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \9// RUN: FileCheck --check-prefix=CHECK-CMD %s10 11// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \12// RUN: FileCheck --check-prefix=CHECK-CMD %s13 14// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \15// RUN: FileCheck --check-prefix=CHECK-CMD2 %s16 17// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -o - -emit-interface-stubs %s | \18// RUN: FileCheck --check-prefix=CHECK-CMD2 %s19 20// RUN: %clang -target x86_64-unknown-linux-gnu -o - -c %s | llvm-readelf -s - 2>&1 | \21// RUN: FileCheck -check-prefix=CHECK-SYMBOLS %s22 23// Always Be Hidden:24// CHECK-CMD-HIDDEN-NOT: _Z6hiddenv25// CHECK-CMD2-NOT: _Z6hiddenv26__attribute__((visibility("hidden"))) void hidden() {}27 28// Always Be Visible:29// CHECK-CMD-HIDDEN: _Z9nothiddenv30// CHECK-CMD-DAG: _Z9nothiddenv31__attribute__((visibility("default"))) void nothidden() {}32 33// Do Whatever -fvisibility says:34// CHECK-CMD-HIDDEN-NOT: _Z10cmdVisiblev35// CHECK-CMD-DAG: _Z10cmdVisiblev36void cmdVisible() {}37 38// CHECK-SYMBOLS-DAG: DEFAULT {{.*}} _Z10cmdVisiblev39// CHECK-SYMBOLS-DAG: HIDDEN {{.*}} _Z6hiddenv40// CHECK-SYMBOLS-DAG: DEFAULT {{.*}} _Z9nothiddenv41