100 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t | FileCheck %s
 | 
						|
 | 
						|
 | 
						|
	.text
 | 
						|
 | 
						|
// Test that this produces a regular local symbol.
 | 
						|
	.type	common1,@object
 | 
						|
	.local	common1
 | 
						|
	.comm	common1,1,1
 | 
						|
 | 
						|
// CHECK:        Symbol {
 | 
						|
// CHECK:          Name: common1
 | 
						|
// CHECK-NEXT:     Value: 0x0
 | 
						|
// CHECK-NEXT:     Size: 1
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: Object
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section:
 | 
						|
// CHECK-NEXT:   }
 | 
						|
 | 
						|
 | 
						|
// Same as common1, but with directives in a different order.
 | 
						|
	.local	common2
 | 
						|
	.type	common2,@object
 | 
						|
	.comm	common2,1,1
 | 
						|
 | 
						|
// CHECK:        Symbol {
 | 
						|
// CHECK:          Name: common2
 | 
						|
// CHECK-NEXT:     Value: 0x1
 | 
						|
// CHECK-NEXT:     Size: 1
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: Object
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section:
 | 
						|
// CHECK-NEXT:   }
 | 
						|
 | 
						|
 | 
						|
        .local	common6
 | 
						|
        .comm	common6,8,16
 | 
						|
 | 
						|
// CHECK:        Symbol {
 | 
						|
// CHECK:          Name: common6
 | 
						|
// CHECK-NEXT:     Value: 0x10
 | 
						|
// CHECK-NEXT:     Size: 8
 | 
						|
// CHECK-NEXT:     Binding: Local
 | 
						|
// CHECK-NEXT:     Type: Object
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: .bss
 | 
						|
// CHECK-NEXT:   }
 | 
						|
 | 
						|
 | 
						|
// Test that without an explicit .local we produce a global.
 | 
						|
	.type	common3,@object
 | 
						|
	.comm	common3,4,4
 | 
						|
 | 
						|
// CHECK:        Symbol {
 | 
						|
// CHECK:          Name: common3
 | 
						|
// CHECK-NEXT:     Value: 0x4
 | 
						|
// CHECK-NEXT:     Size: 4
 | 
						|
// CHECK-NEXT:     Binding: Global
 | 
						|
// CHECK-NEXT:     Type: Object
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: Common (0xFFF2)
 | 
						|
// CHECK-NEXT:   }
 | 
						|
 | 
						|
 | 
						|
// Test that without an explicit .local we produce a global, even if the first
 | 
						|
// occurrence is not in a directive.
 | 
						|
	.globl	foo
 | 
						|
	.type	foo,@function
 | 
						|
foo:
 | 
						|
	movsbl	common4+3(%rip), %eax
 | 
						|
 | 
						|
 | 
						|
	.type	common4,@object
 | 
						|
	.comm	common4,40,16
 | 
						|
 | 
						|
// CHECK:        Symbol {
 | 
						|
// CHECK:          Name: common4
 | 
						|
// CHECK-NEXT:     Value: 0x10
 | 
						|
// CHECK-NEXT:     Size: 40
 | 
						|
// CHECK-NEXT:     Binding: Global
 | 
						|
// CHECK-NEXT:     Type: Object
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: Common (0xFFF2)
 | 
						|
// CHECK-NEXT:   }
 | 
						|
 | 
						|
 | 
						|
        .comm	common5,4,4
 | 
						|
 | 
						|
// CHECK:        Symbol {
 | 
						|
// CHECK:          Name: common5
 | 
						|
// CHECK-NEXT:     Value: 0x4
 | 
						|
// CHECK-NEXT:     Size: 4
 | 
						|
// CHECK-NEXT:     Binding: Global
 | 
						|
// CHECK-NEXT:     Type: Object
 | 
						|
// CHECK-NEXT:     Other: 0
 | 
						|
// CHECK-NEXT:     Section: Common (0xFFF2)
 | 
						|
// CHECK-NEXT:   }
 |