38 lines · cpp
1// RUN: %clang_cc1 -triple powerpc-unknown-aix -mcmodel=large -emit-llvm -o - -x c++ %s | \2// RUN: FileCheck -check-prefix=VISIBILITY-IR %s3 4// RUN: %clang_cc1 -triple powerpc-unknown-aix -mcmodel=large \5// RUN: -fvisibility-inlines-hidden -emit-llvm -o - -x c++ %s | \6// RUN: FileCheck -check-prefixes=VISIBILITY-IR,HIDDENINLINE-IR %s7 8// RUN: %clang_cc1 -triple powerpc-unknown-aix -mcmodel=large -fvisibility-inlines-hidden \9// RUN: -fvisibility=default -emit-llvm -o - -x c++ %s | \10// RUN: FileCheck -check-prefixes=VISIBILITY-IR,HIDDENINLINE-IR %s11 12// RUN: %clang_cc1 -triple powerpc-unknown-aix -mcmodel=large -mignore-xcoff-visibility -emit-llvm \13// RUN: -fvisibility-inlines-hidden -fvisibility=default -o - -x c++ %s | \14// RUN: FileCheck -check-prefix=NOVISIBILITY-IR %s15 16int x = 66;17__attribute__((__noinline__)) inline void f() {18 x = 55;19}20 21#pragma GCC visibility push(hidden)22__attribute__((__noinline__)) inline void foo() {23 x = 55;24}25#pragma GCC visibility pop26 27int bar() {28 f();29 foo();30 return x;31}32 33// HIDDENINLINE-IR: define linkonce_odr hidden void @_Z1fv()34// NOVISIBILITY-IR: define linkonce_odr void @_Z1fv()35 36// VISIBILITY-IR: define linkonce_odr hidden void @_Z3foov()37// NOVISIBILITY-IR: define linkonce_odr void @_Z3foov()38