Files
clang-p2996/llvm/test/tools/yaml2obj/ELF/nobits.yaml
Georgii Rymar 400103f3d5 [yaml2obj/obj2yaml] - Add support of 'Size' and 'Content' keys for all sections.
Many sections either do not have a support of `Size`/`Content` or support just a
one of them, e.g only `Content`.

`Section` is the base class for sections. This patch adds `Content` and `Size` members
to it and removes similar members from derived classes. This allows to cleanup and
generalize the code and adds a support of these keys for all sections (`SHT_MIPS_ABIFLAGS`
is a only exception, it requires unrelated specific changes to be done).

I had to update/add many tests to test the new functionality properly.

Differential revision: https://reviews.llvm.org/D89039
2020-10-15 11:11:41 +03:00

37 lines
1.1 KiB
YAML

## Check how SHT_NOBITS sections are created.
## Check we can use the "Size" key alone to create the section.
# RUN: yaml2obj -DSIZE=3 %s -o %t.size.o
# RUN: llvm-readelf --sections --section-data %t.size.o | FileCheck %s
# CHECK: [Nr] Name Type Address Off Size ES Flg Lk Inf Al
# CHECK: [ 1] .nobits NOBITS 0000000000000000 000040 000003 00 0 0 0
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_DYN
Sections:
- Name: .nobits
Type: SHT_NOBITS
Size: [[SIZE=<none>]]
Content: [[CONTENT=<none>]]
## Check we can't use the "Content" key.
# RUN: not yaml2obj -DCONTENT="'112233'" %s 2>&1 | \
# RUN: FileCheck %s --check-prefix=CONTENT-ERR
# CONTENT-ERR: error: SHT_NOBITS section cannot have "Content"
## Check we create an empty section when neither of "Size" nor "Content" are specified.
# RUN: yaml2obj %s -o %t.empty.o
# RUN: llvm-readelf --sections --section-data %t.empty.o | \
# RUN: FileCheck %s --check-prefix=EMPTY-SEC
# EMPTY-SEC: [Nr] Name Type Address Off Size
# EMPTY-SEC: [ 1] .nobits NOBITS 0000000000000000 000040 000000