1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t | FileCheck %s 2 3foo: 4bar = foo 5 6 .globl foo2 7foo2 = bar2 8 9foo3: 10 .globl bar3 11bar3 = foo3 12 13 14// Test that bar4 and bar 5 are also functions and have the same value as foo4. 15 .byte 0 16 .type foo4,@function 17foo4: 18bar4 = foo4 19bar5 = bar4 20 21 .long foo2 22 23// Test that bar6 is a function that doesn't have the same value as foo4. 24bar6 = bar5 25bar6: 26 27// CHECK: Symbols [ 28// CHECK-NEXT: Symbol { 29// CHECK-NEXT: Name: (0) 30// CHECK-NEXT: Value: 0x0 31// CHECK-NEXT: Size: 0 32// CHECK-NEXT: Binding: Local (0x0) 33// CHECK-NEXT: Type: None (0x0) 34// CHECK-NEXT: Other: 0 35// CHECK-NEXT: Section: Undefined (0x0) 36// CHECK-NEXT: } 37// CHECK-NEXT: Symbol { 38// CHECK-NEXT: Name: bar 39// CHECK-NEXT: Value: 0x0 40// CHECK-NEXT: Size: 0 41// CHECK-NEXT: Binding: Local 42// CHECK-NEXT: Type: None 43// CHECK-NEXT: Other: 0 44// CHECK-NEXT: Section: .text 45// CHECK-NEXT: } 46// CHECK-NEXT: Symbol { 47// CHECK-NEXT: Name: bar4 48// CHECK-NEXT: Value: 0x1 49// CHECK-NEXT: Size: 0 50// CHECK-NEXT: Binding: Local 51// CHECK-NEXT: Type: Function 52// CHECK-NEXT: Other: 0 53// CHECK-NEXT: Section: .text 54// CHECK-NEXT: } 55// CHECK-NEXT: Symbol { 56// CHECK-NEXT: Name: bar5 57// CHECK-NEXT: Value: 0x1 58// CHECK-NEXT: Size: 0 59// CHECK-NEXT: Binding: Local 60// CHECK-NEXT: Type: Function 61// CHECK-NEXT: Other: 0 62// CHECK-NEXT: Section: .text 63// CHECK-NEXT: } 64// CHECK-NEXT: Symbol { 65// CHECK-NEXT: Name: bar6 66// CHECK-NEXT: Value: 0x5 67// CHECK-NEXT: Size: 0 68// CHECK-NEXT: Binding: Local 69// CHECK-NEXT: Type: None 70// CHECK-NEXT: Other: 0 71// CHECK-NEXT: Section: .text 72// CHECK-NEXT: } 73// CHECK-NEXT: Symbol { 74// CHECK-NEXT: Name: foo 75// CHECK-NEXT: Value: 0x0 76// CHECK-NEXT: Size: 0 77// CHECK-NEXT: Binding: Local 78// CHECK-NEXT: Type: None 79// CHECK-NEXT: Other: 0 80// CHECK-NEXT: Section: .text 81// CHECK-NEXT: } 82// CHECK-NEXT: Symbol { 83// CHECK-NEXT: Name: foo3 84// CHECK-NEXT: Value: 0x0 85// CHECK-NEXT: Size: 0 86// CHECK-NEXT: Binding: Local 87// CHECK-NEXT: Type: None 88// CHECK-NEXT: Other: 0 89// CHECK-NEXT: Section: .text 90// CHECK-NEXT: } 91// CHECK-NEXT: Symbol { 92// CHECK-NEXT: Name: foo4 93// CHECK-NEXT: Value: 0x1 94// CHECK-NEXT: Size: 0 95// CHECK-NEXT: Binding: Local 96// CHECK-NEXT: Type: Function 97// CHECK-NEXT: Other: 0 98// CHECK-NEXT: Section: .text 99// CHECK-NEXT: } 100// CHECK-NEXT: Symbol { 101// CHECK-NEXT: Name: .text (0) 102// CHECK: } 103// CHECK-NEXT: Symbol { 104// CHECK-NEXT: Name: .data (0) 105// CHECK: } 106// CHECK-NEXT: Symbol { 107// CHECK-NEXT: Name: .bss (0) 108// CHECK: } 109// CHECK-NEXT: Symbol { 110// CHECK-NEXT: Name: bar3 111// CHECK-NEXT: Value: 0x0 112// CHECK-NEXT: Size: 0 113// CHECK-NEXT: Binding: Global 114// CHECK-NEXT: Type: None 115// CHECK-NEXT: Other: 0 116// CHECK-NEXT: Section: .text 117// CHECK-NEXT: } 118// CHECK-NEXT: Symbol { 119// CHECK-NEXT: Name: bar2 120// CHECK-NEXT: Value: 0x0 121// CHECK-NEXT: Size: 0 122// CHECK-NEXT: Binding: Global 123// CHECK-NEXT: Type: None 124// CHECK-NEXT: Other: 0 125// CHECK-NEXT: Section: Undefined (0x0) 126// CHECK-NEXT: } 127// CHECK-NEXT: ] 128