72 lines · plain
1// REQUIRES: x862// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/merge.s -o %t2.o4// RUN: ld.lld %t.o %t2.o -o %t5// RUN: llvm-readelf -S -s -x .mysec %t | FileCheck %s6// RUN: llvm-objdump -d %t | FileCheck --check-prefix=DISASM %s7 8// CHECK: Name Type Address Off Size ES Flg Lk Inf Al9// CHECK: .mysec PROGBITS 0000000000200120 000120 000008 04 AM 0 0 410 11// CHECK-DAG: 0000000000200120 0 NOTYPE LOCAL DEFAULT 1 bar12// CHECK-DAG: 0000000000200120 0 NOTYPE LOCAL DEFAULT 1 zed13// CHECK-DAG: 0000000000200120 0 NOTYPE LOCAL HIDDEN 1 foo14 15// CHECK: Hex dump of section '.mysec':16// CHECK-NEXT: 0x00200120 42000000 1000000017 18 .section .mysec,"aM",@progbits,419 .align 420 .global foo21 .hidden foo22 .long 0x1023foo:24 .long 0x4225bar:26 .long 0x4227zed:28 .long 0x4229 30 .text31 .globl _start32_start:33// DISASM: Disassembly of section .text:34// DISASM-EMPTY:35// DISASM-NEXT: <_start>:36 37 movl .mysec, %eax38// addr(0x10)39// DISASM-NEXT: movl 0x200124, %eax40 41 movl .mysec+7, %eax42// addr(0x42) + 343// DISASM-NEXT: movl 0x200123, %eax44 45 movl .mysec+8, %eax46// addr(0x42)47// DISASM-NEXT: movl 0x200120, %eax48 49 movl bar+7, %eax50// addr(0x42) + 351// DISASM-NEXT: movl 0x200127, %eax52 53 movl bar+8, %eax54// addr(0x42)55// DISASM-NEXT: movl 0x200128, %eax56 57 movl foo, %eax58// addr(0x42)59// DISASM-NEXT: movl 0x200120, %eax60 61 movl foo+7, %eax62// addr(0x42) + 763// DISASM-NEXT: movl 0x200127, %eax64 65 movl foo+8, %eax66// addr(0x42) + 867// DISASM-NEXT: movl 0x200128, %eax68 69// From the other file: movl .mysec, %eax70// addr(0x42)71// DISASM-NEXT: movl 0x200120, %eax72