|  | ; RUN: llvm-as %s -o - | llvm-nm - | FileCheck %s | 
|  |  | 
|  | ; CHECK: D a1 | 
|  | ; CHECK-NEXT: d a2 | 
|  | ; CHECK-NEXT: T f1 | 
|  | ; CHECK-NEXT: t f2 | 
|  | ; CHECK-NEXT: W f3 | 
|  | ; CHECK-NEXT: U f4 | 
|  | ; CHECK-NEXT: w f5 | 
|  | ; CHECK-NEXT: D g1 | 
|  | ; CHECK-NEXT: d g2 | 
|  | ; CHECK-NEXT: C g3 | 
|  | ; CHECK-NOT: g4 | 
|  | ; CHECK-NEXT: T global_asm_sym | 
|  | ; CHECK-NEXT: T ifunc_f1 | 
|  | ; CHECK-NEXT: t local_asm_sym | 
|  | ; CHECK-NEXT: U undef_asm_sy | 
|  |  | 
|  | target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | 
|  | target triple = "x86_64-unknown-linux-gnu" | 
|  |  | 
|  | module asm ".global global_asm_sym" | 
|  | module asm "global_asm_sym:" | 
|  | module asm "local_asm_sym:" | 
|  | module asm ".long undef_asm_sym" | 
|  |  | 
|  | @g1 = global i32 42 | 
|  | @g2 = internal global i32 42 | 
|  | @g3 = common global i32 0 | 
|  | @g4 = private global i32 42 | 
|  |  | 
|  | @a1 = alias i32, i32* @g1 | 
|  | @a2 = internal alias i32, i32* @g1 | 
|  |  | 
|  | define void @f1() { | 
|  | call void @f5() | 
|  | ret void | 
|  | } | 
|  |  | 
|  | @ifunc_f1 = ifunc void (), void ()* @f1 | 
|  |  | 
|  | define internal void @f2() { | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define linkonce_odr void @f3() { | 
|  | ret void | 
|  | } | 
|  |  | 
|  | declare void @f4() | 
|  |  | 
|  | declare extern_weak void @f5() |