1; REQUIRES: x86 2; RUN: llvm-as %s -o %t1.o 3; RUN: ld.lld %t1.o -r -o %t 4; RUN: llvm-readobj --symbols %t | FileCheck %s 5 6; CHECK: Symbols [ 7; CHECK-NEXT: Symbol { 8; CHECK-NEXT: Name: 9; CHECK-NEXT: Value: 0x0 10; CHECK-NEXT: Size: 0 11; CHECK-NEXT: Binding: Local 12; CHECK-NEXT: Type: None 13; CHECK-NEXT: Other: 0 14; CHECK-NEXT: Section: Undefined 15; CHECK-NEXT: } 16; CHECK-NEXT: Symbol { 17; CHECK-NEXT: Name: {{.*}}.o 18; CHECK-NEXT: Value: 0x0 19; CHECK-NEXT: Size: 0 20; CHECK-NEXT: Binding: Local 21; CHECK-NEXT: Type: File 22; CHECK-NEXT: Other: 0 23; CHECK-NEXT: Section: Absolute 24; CHECK-NEXT: } 25; CHECK-NEXT: Symbol { 26; CHECK-NEXT: Name: 27; CHECK-NEXT: Value: 0x0 28; CHECK-NEXT: Size: 0 29; CHECK-NEXT: Binding: Local 30; CHECK-NEXT: Type: Section 31; CHECK-NEXT: Other: 0 32; CHECK-NEXT: Section: .text 33; CHECK-NEXT: } 34; CHECK-NEXT: Symbol { 35; CHECK-NEXT: Name: 36; CHECK-NEXT: Value: 0x0 37; CHECK-NEXT: Size: 0 38; CHECK-NEXT: Binding: Local 39; CHECK-NEXT: Type: Section 40; CHECK-NEXT: Other: 0 41; CHECK-NEXT: Section: .text.foo 42; CHECK-NEXT: } 43; CHECK-NEXT: Symbol { 44; CHECK-NEXT: Name: 45; CHECK-NEXT: Value: 0x0 46; CHECK-NEXT: Size: 0 47; CHECK-NEXT: Binding: Local 48; CHECK-NEXT: Type: Section 49; CHECK-NEXT: Other: 0 50; CHECK-NEXT: Section: .llvm_addrsig 51; CHECK-NEXT: } 52; CHECK-NEXT: Symbol { 53; CHECK-NEXT: Name: foo 54; CHECK-NEXT: Value: 0x0 55; CHECK-NEXT: Size: 1 56; CHECK-NEXT: Binding: Global 57; CHECK-NEXT: Type: Function 58; CHECK-NEXT: Other: 0 59; CHECK-NEXT: Section: .text.foo 60; CHECK-NEXT: } 61; CHECK-NEXT: ] 62 63target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" 64target triple = "x86_64-unknown-linux-gnu" 65 66define void @foo() { 67 call void @bar() 68 ret void 69} 70 71define internal void @bar() { 72 ret void 73} 74 75declare i32 @baz(...) 76