Joseph Huber e0fb9f55b6 [llvm-objdump] Fix alignment issues when dumping offloading sections
Summary:
The `.llvm.offloading` section should always be aligned by `8`. However,
we may want to show the offloading data stored in a static library. In
this case, even though the section's alignment is correct, the offset
inside the archive will result in the memory buffer being misaligned. TO
combat this we simply check if the buffer does not have the proper
alignment and copies it to a new buffer if not. This copy should have
the proper alignment.
2022-07-08 14:30:06 -04:00

23 lines
814 B
Plaintext

## Ensure we can read the contents even if the alignment is bad.
# RUN: yaml2obj %s -o %t.elf
# RUN: yaml2obj %S/Inputs/binary.yaml -o %t.bin
# RUN: llvm-objcopy --update-section .llvm.offloading=%t.bin %t.elf
# RUN: llvm-objdump --offloading %t.elf | FileCheck %s -DFILENAME=%t
!ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Sections:
- Name: .misaligned
Type: SHT_PROGBITS
AddressAlign: 0x0000000000000001
Content: "41424300"
- Name: .llvm.offloading
Type: SHT_LLVM_OFFLOADING
Flags: [ SHF_EXCLUDE ]
AddressAlign: 0x0000000000000001
# CHECK-NOT: error: '[[FILENAME]]': while extracting offloading files: Invalid data was encountered while parsing the file