| // REQUIRES: systemz-registered-target |
| // RUN: %clang_cc1 %s -emit-llvm -fzos-extensions -triple s390x-none-zos -fvisibility=hidden -o - | FileCheck %s |
| |
| // Testing pragma export after decl. |
| void f0(void) {} |
| int v0; |
| int vd = 2; |
| #pragma export(f0) |
| #pragma export(v0) |
| #pragma export(vd) |
| |
| // Testing pragma export before decl. |
| #pragma export(f1) |
| #pragma export(v1) |
| void f1(void) {} |
| int v1; |
| |
| void f2(void); |
| |
| void t0(void) { f2();} |
| |
| #pragma export(f2) |
| void f2(void) {} |
| |
| int func() { |
| int local; |
| int l2; |
| return local+l2; |
| } |
| |
| int local = 2; |
| int l2 =4; |
| |
| // CHECK: @vd = hidden global i32 |
| // CHECK: @local = hidden global i32 |
| // CHECK: @l2 = hidden global i32 |
| // CHECK: @v0 = global i32 |
| // CHECK: @v1 = global i32 |
| // CHECK: define hidden void @f0() |
| // CHECK: define void @f1() |
| // CHECK: define hidden void @t0() |
| // CHECK: define void @f2() |