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