132 lines · plain
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj --symbols - | FileCheck %s2 3foo:4bar = foo5 6 .globl foo27foo2 = bar28 9foo3:10 .globl bar311bar3 = foo312 13 14// Test that bar4 and bar 5 are also functions and have the same value as foo4.15 .byte 016 .type foo4,@function17foo4:18bar4 = foo419bar5 = bar420 21 .long foo222 23// Test that bar6 is a function that doesn't have the same value as foo4.24bar6 = bar525bar6:26 27// Test that indirect local aliases do not appear as symbols.28.data29.Llocal:30 31.text32leaq .Llocal1(%rip), %rdi33.Llocal1 = .Llocal234.Llocal2 = .Llocal35 36// CHECK: Symbols [37// CHECK-NEXT: Symbol {38// CHECK-NEXT: Name: (0)39// CHECK-NEXT: Value: 0x040// CHECK-NEXT: Size: 041// CHECK-NEXT: Binding: Local (0x0)42// CHECK-NEXT: Type: None (0x0)43// CHECK-NEXT: Other: 044// CHECK-NEXT: Section: Undefined (0x0)45// CHECK-NEXT: }46// CHECK-NEXT: Symbol {47// CHECK-NEXT: Name: foo48// CHECK-NEXT: Value: 0x049// CHECK-NEXT: Size: 050// CHECK-NEXT: Binding: Local51// CHECK-NEXT: Type: None52// CHECK-NEXT: Other: 053// CHECK-NEXT: Section: .text54// CHECK-NEXT: }55// CHECK-NEXT: Symbol {56// CHECK-NEXT: Name: bar57// CHECK-NEXT: Value: 0x058// CHECK-NEXT: Size: 059// CHECK-NEXT: Binding: Local60// CHECK-NEXT: Type: None61// CHECK-NEXT: Other: 062// CHECK-NEXT: Section: .text63// CHECK-NEXT: }64// CHECK-NEXT: Symbol {65// CHECK-NEXT: Name: foo366// CHECK-NEXT: Value: 0x067// CHECK-NEXT: Size: 068// CHECK-NEXT: Binding: Local69// CHECK-NEXT: Type: None70// CHECK-NEXT: Other: 071// CHECK-NEXT: Section: .text72// CHECK-NEXT: }73// CHECK-NEXT: Symbol {74// CHECK-NEXT: Name: foo475// CHECK-NEXT: Value: 0x176// CHECK-NEXT: Size: 077// CHECK-NEXT: Binding: Local78// CHECK-NEXT: Type: Function79// CHECK-NEXT: Other: 080// CHECK-NEXT: Section: .text81// CHECK-NEXT: }82// CHECK-NEXT: Symbol {83// CHECK-NEXT: Name: bar484// CHECK-NEXT: Value: 0x185// CHECK-NEXT: Size: 086// CHECK-NEXT: Binding: Local87// CHECK-NEXT: Type: Function88// CHECK-NEXT: Other: 089// CHECK-NEXT: Section: .text90// CHECK-NEXT: }91// CHECK-NEXT: Symbol {92// CHECK-NEXT: Name: bar593// CHECK-NEXT: Value: 0x194// CHECK-NEXT: Size: 095// CHECK-NEXT: Binding: Local96// CHECK-NEXT: Type: Function97// CHECK-NEXT: Other: 098// CHECK-NEXT: Section: .text99// CHECK-NEXT: }100// CHECK-NEXT: Symbol {101// CHECK-NEXT: Name: bar6102// CHECK-NEXT: Value: 0x5103// CHECK-NEXT: Size: 0104// CHECK-NEXT: Binding: Local105// CHECK-NEXT: Type: None106// CHECK-NEXT: Other: 0107// CHECK-NEXT: Section: .text108// CHECK-NEXT: }109// CHECK-NEXT: Symbol {110// CHECK-NEXT: Name: .data (0)111// CHECK-NOT: Symbol {112// CHECK: }113// CHECK-NEXT: Symbol {114// CHECK-NEXT: Name: bar2115// CHECK-NEXT: Value: 0x0116// CHECK-NEXT: Size: 0117// CHECK-NEXT: Binding: Global118// CHECK-NEXT: Type: None119// CHECK-NEXT: Other: 0120// CHECK-NEXT: Section: Undefined (0x0)121// CHECK-NEXT: }122// CHECK-NEXT: Symbol {123// CHECK-NEXT: Name: bar3124// CHECK-NEXT: Value: 0x0125// CHECK-NEXT: Size: 0126// CHECK-NEXT: Binding: Global127// CHECK-NEXT: Type: None128// CHECK-NEXT: Other: 0129// CHECK-NEXT: Section: .text130// CHECK-NEXT: }131// CHECK-NEXT: ]132