|  | ; RUN: llvm-link %s %p/Inputs/visibility.ll -S | FileCheck %s | 
|  | ; RUN: llvm-link %p/Inputs/visibility.ll %s -S | FileCheck %s | 
|  |  | 
|  | ; The values in this file are strong, the ones in Inputs/visibility.ll are weak, | 
|  | ; but we should still get the visibility from them. | 
|  |  | 
|  |  | 
|  | $c1 = comdat any | 
|  |  | 
|  | ; Variables | 
|  | ; CHECK-DAG: @v1 = hidden global i32 0 | 
|  | @v1 = global i32 0 | 
|  |  | 
|  | ; CHECK-DAG: @v2 = protected  global i32 0 | 
|  | @v2 = global i32 0 | 
|  |  | 
|  | ; CHECK-DAG: @v3 = hidden global i32 0 | 
|  | @v3 = protected global i32 0 | 
|  |  | 
|  | ; CHECK-DAG: @v4 = hidden global i32 1, comdat($c1) | 
|  | @v4 = global i32 1, comdat($c1) | 
|  |  | 
|  | ; Aliases | 
|  | ; CHECK: @a1 = hidden alias i32, i32* @v1 | 
|  | @a1 = alias i32, i32* @v1 | 
|  |  | 
|  | ; CHECK: @a2 = protected alias i32, i32* @v2 | 
|  | @a2 = alias i32, i32* @v2 | 
|  |  | 
|  | ; CHECK: @a3 = hidden alias i32, i32* @v3 | 
|  | @a3 = protected alias i32, i32* @v3 | 
|  |  | 
|  |  | 
|  | ; Functions | 
|  | ; CHECK: define hidden void @f1() | 
|  | define void @f1()  { | 
|  | entry: | 
|  | ret void | 
|  | } | 
|  |  | 
|  | ; CHECK: define protected void @f2() | 
|  | define void @f2()  { | 
|  | entry: | 
|  | ret void | 
|  | } | 
|  |  | 
|  | ; CHECK: define hidden void @f3() | 
|  | define protected void @f3()  { | 
|  | entry: | 
|  | ret void | 
|  | } |