132 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t | FileCheck %s
 | 
						|
 | 
						|
foo:
 | 
						|
bar = foo
 | 
						|
 | 
						|
        .globl	foo2
 | 
						|
foo2 = bar2
 | 
						|
 | 
						|
foo3:
 | 
						|
	.globl	bar3
 | 
						|
bar3 = foo3
 | 
						|
 | 
						|
 | 
						|
// Test that bar4  and bar 5 are also functions and have the same value as foo4.
 | 
						|
	.byte 0
 | 
						|
	.type	foo4,@function
 | 
						|
foo4:
 | 
						|
bar4 = foo4
 | 
						|
bar5 = bar4
 | 
						|
 | 
						|
        .long foo2
 | 
						|
 | 
						|
// Test that bar6 is a function that doesn't have the same value as foo4.
 | 
						|
bar6 = bar5
 | 
						|
bar6:
 | 
						|
 | 
						|
// Test that indirect local aliases do not appear as symbols.
 | 
						|
.data
 | 
						|
.Llocal:
 | 
						|
 | 
						|
.text
 | 
						|
leaq .Llocal1(%rip), %rdi
 | 
						|
.Llocal1 = .Llocal2
 | 
						|
.Llocal2 = .Llocal
 | 
						|
 | 
						|
// CHECK:      Symbols [
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name:  (0)
 | 
						|
// CHECK-NEXT:     Value: 0x0
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local (0x0)
 | 
						|
// CHECK-NEXT:     Type: None (0x0)
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: Undefined (0x0)
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: bar
 | 
						|
// CHECK-NEXT:     Value: 0x0
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: None
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: bar4
 | 
						|
// CHECK-NEXT:     Value: 0x1
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: Function
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: bar5
 | 
						|
// CHECK-NEXT:     Value: 0x1
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: Function
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: bar6
 | 
						|
// CHECK-NEXT:     Value: 0x5
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: None
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: foo
 | 
						|
// CHECK-NEXT:     Value: 0x0
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: None
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: foo3
 | 
						|
// CHECK-NEXT:     Value: 0x0
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: None
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: foo4
 | 
						|
// CHECK-NEXT:     Value: 0x1
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: Function
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: (0)
 | 
						|
// CHECK-NOT: Symbol {
 | 
						|
// CHECK:        }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: bar2
 | 
						|
// CHECK-NEXT:     Value: 0x0
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Global
 | 
						|
// CHECK-NEXT:     Type: None
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: Undefined (0x0)
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT:   Symbol {
 | 
						|
// CHECK-NEXT:     Name: bar3
 | 
						|
// CHECK-NEXT:     Value: 0x0
 | 
						|
// CHECK-NEXT:     Size: 0
 | 
						|
// CHECK-NEXT:     Binding: Global
 | 
						|
// CHECK-NEXT:     Type: None
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .text
 | 
						|
// CHECK-NEXT:   }
 | 
						|
// CHECK-NEXT: ]
 |