| // 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() |