139 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj  -t -r --expand-relocs | FileCheck %s
 | |
| 
 | |
| // Local symbol overriding section.
 | |
| .section x1,"a",@progbits
 | |
| .local  x1
 | |
| .comm   x1,4,4
 | |
| .long x1  // reloc: .bss + 0
 | |
| 
 | |
| // Section declared after local. Local symbol wins.
 | |
| .local  x2
 | |
| .comm   x2,4,4
 | |
| .section x2,"a",@progbits
 | |
| .long x2  // reloc: .bss + 4
 | |
| 
 | |
| // No overriding symbol.
 | |
| .section x3,"a",@progbits
 | |
| .long x3  // reloc: x3(section) + 0
 | |
| 
 | |
| // Global vs section.
 | |
| .section x4,"a",@progbits
 | |
| .long 0
 | |
| .globl x4
 | |
| .section foo, "a", @progbits
 | |
| x4:
 | |
| .long 0
 | |
| .long x4  // reloc: x4(global) + 0
 | |
| 
 | |
| // Global vs implicit section
 | |
| .globl .data
 | |
| .data:
 | |
| .long 42
 | |
| .long .data // reloc: .data(global) + 0
 | |
| 
 | |
| // CHECK: Relocations [
 | |
| // CHECK:   Section (4) .relax1 {
 | |
| // CHECK:     Relocation {
 | |
| // CHECK:       Offset: 0x0
 | |
| // CHECK:       Type: R_X86_64_32 (10)
 | |
| // CHECK:       Symbol: .bss (3)
 | |
| // CHECK:       Addend: 0x0
 | |
| // CHECK:     }
 | |
| // CHECK:   }
 | |
| // CHECK:   Section (7) .relax2 {
 | |
| // CHECK:     Relocation {
 | |
| // CHECK:       Offset: 0x0
 | |
| // CHECK:       Type: R_X86_64_32 (10)
 | |
| // CHECK:       Symbol: .bss (3)
 | |
| // CHECK:       Addend: 0x4
 | |
| // CHECK:     }
 | |
| // CHECK:   }
 | |
| // CHECK:   Section (9) .relax3 {
 | |
| // CHECK:     Relocation {
 | |
| // CHECK:       Offset: 0x0
 | |
| // CHECK:       Type: R_X86_64_32 (10)
 | |
| // CHECK:       Symbol: x3 (4)
 | |
| // CHECK:       Addend: 0x0
 | |
| // CHECK:     }
 | |
| // CHECK:   }
 | |
| // CHECK:   Section (12) .relafoo {
 | |
| // CHECK:     Relocation {
 | |
| // CHECK:       Offset: 0x4
 | |
| // CHECK:       Type: R_X86_64_32 (10)
 | |
| // CHECK:       Symbol: x4 (6)
 | |
| // CHECK:       Addend: 0x0
 | |
| // CHECK:     }
 | |
| // CHECK:     Relocation {
 | |
| // CHECK:       Offset: 0xC
 | |
| // CHECK:       Type: R_X86_64_32 (10)
 | |
| // CHECK:       Symbol: .data (5)
 | |
| // CHECK:       Addend: 0x0
 | |
| // CHECK:     }
 | |
| // CHECK:   }
 | |
| // CHECK: ]
 | |
| // CHECK: Symbols [
 | |
| // CHECK:   Symbol {
 | |
| // CHECK:     Name:  (0)
 | |
| // CHECK:     Value: 0x0
 | |
| // CHECK:     Size: 0
 | |
| // CHECK:     Binding: Local (0x0)
 | |
| // CHECK:     Type: None (0x0)
 | |
| // CHECK:     Other: 0
 | |
| // CHECK:     Section: Undefined (0x0)
 | |
| // CHECK:   }
 | |
| // CHECK:   Symbol {
 | |
| // CHECK:     Name: x1 (67)
 | |
| // CHECK:     Value: 0x0
 | |
| // CHECK:     Size: 4
 | |
| // CHECK:     Binding: Local (0x0)
 | |
| // CHECK:     Type: Object (0x1)
 | |
| // CHECK:     Other: 0
 | |
| // CHECK:     Section: .bss (0x5)
 | |
| // CHECK:   }
 | |
| // CHECK:   Symbol {
 | |
| // CHECK:     Name: x2 (59)
 | |
| // CHECK:     Value: 0x4
 | |
| // CHECK:     Size: 4
 | |
| // CHECK:     Binding: Local (0x0)
 | |
| // CHECK:     Type: Object (0x1)
 | |
| // CHECK:     Other: 0
 | |
| // CHECK:     Section: .bss (0x5)
 | |
| // CHECK:   }
 | |
| // CHECK:   Symbol {
 | |
| // CHECK:     Name:  (0)
 | |
| // CHECK:     Value: 0x0
 | |
| // CHECK:     Size: 0
 | |
| // CHECK:     Binding: Local (0x0)
 | |
| // CHECK:     Type: Section (0x3)
 | |
| // CHECK:     Other: 0
 | |
| // CHECK:     Section: .bss (0x5)
 | |
| // CHECK:   }
 | |
| // CHECK:   Symbol {
 | |
| // CHECK:     Name:  (0)
 | |
| // CHECK:     Value: 0x0
 | |
| // CHECK:     Size: 0
 | |
| // CHECK:     Binding: Local (0x0)
 | |
| // CHECK:     Type: Section (0x3)
 | |
| // CHECK:     Other: 0
 | |
| // CHECK:     Section: x3 (0x8)
 | |
| // CHECK:   }
 | |
| // CHECK:   Symbol {
 | |
| // CHECK:     Name: .data (37)
 | |
| // CHECK:     Value: 0x8
 | |
| // CHECK:     Size: 0
 | |
| // CHECK:     Binding: Global (0x1)
 | |
| // CHECK:     Type: None (0x0)
 | |
| // CHECK:     Other: 0
 | |
| // CHECK:     Section: foo (0xB)
 | |
| // CHECK:   }
 | |
| // CHECK:   Symbol {
 | |
| // CHECK:     Name: x4 (43)
 | |
| // CHECK:     Value: 0x0
 | |
| // CHECK:     Size: 0
 | |
| // CHECK:     Binding: Global (0x1)
 | |
| // CHECK:     Type: None (0x0)
 | |
| // CHECK:     Other: 0
 | |
| // CHECK:     Section: foo (0xB)
 | |
| // CHECK:   }
 | |
| // CHECK: ]
 |