# RUN: yaml2obj -format=elf %s | llvm-readobj -sections -section-data - | FileCheck %s
+# RUN: yaml2obj -format=elf -o %t %s
+# RUN: llvm-readobj -sections -section-data %t | FileCheck %s
+
!ELF
FileHeader:
Class: ELFCLASS64
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- Address: 0xDEADBEEF
+ Address: 0xCAFEBABE
+ Link: .text # Doesn't make sense for SHT_PROGBITS, but good enough for test.
Content: EBFE
+ AddressAlign: 2
+
+ - Name: .data
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Address: 0xCAFECAFE
+ Content: FEBF
+ Size: 8
+ AddressAlign: 2
# CHECK: Section {
# CHECK: Index: 0
# CHECK-NEXT: SHF_ALLOC (0x2)
# CHECK-NEXT: SHF_EXECINSTR (0x4)
# CHECK-NEXT: ]
-# CHECK-NEXT: Address: 0xDEADBEEF
+# CHECK-NEXT: Address: 0xCAFEBABE
# CHECK: Size: 2
+# Check that Link != 0.
+# CHECK: Link: {{[1-9][0-9]*}}
+# CHECK: AddressAlignment: 2
# CHECK: SectionData (
# CHECK-NEXT: 0000: EBFE
# CHECK-NEXT: )
+#
+# CHECK: Section {
+# CHECK: Name: .data
+# CHECK-NEXT: Type: SHT_PROGBITS (0x1)
+# CHECK-NEXT: Flags [ (0x2)
+# CHECK-NEXT: SHF_ALLOC (0x2)
+# CHECK-NEXT: ]
+# CHECK-NEXT: Address: 0xCAFECAFE
+# CHECK-NEXT: Offset: 0x{{[0-9A-F]+}}
+# CHECK-NEXT: Size: 8
+# CHECK-NEXT: Link: 0
+# CHECK-NEXT: Info: 0
+# CHECK-NEXT: AddressAlignment: 2
+# CHECK-NEXT: EntrySize: 0
+# CHECK-NEXT: SectionData (
+# CHECK-NEXT: 0000: FEBF0000 00000000 |........|
+# CHECK-NEXT: )
+#
+# CHECK: Section {
+# CHECK: Name: .symtab (25)
+# CHECK: Type: SHT_SYMTAB (0x2)
+# CHECK: AddressAlignment: 8
+# CHECK: }
+# CHECK: Section {
+# CHECK: Name: .strtab (17)
+# CHECK: Type: SHT_STRTAB (0x3)
+# CHECK: AddressAlignment: 1
+# CHECK: }
+# CHECK: Section {
+# CHECK: Name: .shstrtab (7)
+# CHECK: Type: SHT_STRTAB (0x3)
+# CHECK: AddressAlignment: 1
+# CHECK: }