## Test that yaml2obj automatically sets fields of the auxiliary file header
## if not set explicitly.

## Case1: if text/data/bss/tdata/tbss/loader sections are set and corresponding
##        fields in the aux header are omitted, we use the derived values of
##        those sections to set corresponding fields.
# RUN: yaml2obj %s --docnum=1 -o %t1
# RUN: llvm-readobj --auxiliary-header %t1 | FileCheck %s --check-prefix=CASE1

# CASE1:      AuxiliaryHeader {
# CASE1-NEXT:   Magic: 0x10B
# CASE1-NEXT:   Version: 0x1
# CASE1-NEXT:   Size of .text section: 0x8
# CASE1-NEXT:   Size of .data section: 0x8
# CASE1-NEXT:   Size of .bss section: 0x8
# CASE1-NEXT:   Entry point address: 0x0
# CASE1-NEXT:   .text section start address: 0x4
# CASE1-NEXT:   .data section start address: 0x10
# CASE1-NEXT:   TOC anchor address: 0x0
# CASE1-NEXT:   Section number of entryPoint: 0
# CASE1-NEXT:   Section number of .text: 2
# CASE1-NEXT:   Section number of .data: 4
# CASE1-NEXT:   Section number of TOC: 0
# CASE1-NEXT:   Section number of loader data: 12
# CASE1-NEXT:   Section number of .bss: 6
# CASE1-NEXT:   Maxium alignment of .text: 0x0
# CASE1-NEXT:   Maxium alignment of .data: 0x0
# CASE1-NEXT:   Module type: 0x0
# CASE1-NEXT:   CPU type of objects: 0x0
# CASE1-NEXT:   (Reserved): 0x0
# CASE1-NEXT:   Maximum stack size: 0x0
# CASE1-NEXT:   Maximum data size: 0x0
# CASE1-NEXT:   Reserved for debugger: 0x0
# CASE1-NEXT:   Text page size: 0x0
# CASE1-NEXT:   Data page size: 0x0
# CASE1-NEXT:   Stack page size: 0x0
# CASE1-NEXT:   Flag: 0x0
# CASE1-NEXT:   Alignment of thread-local storage: 0x0
# CASE1-NEXT:   Section number for .tdata: 8
# CASE1-NEXT:   Section number for .tbss: 10
# CASE1-NEXT: }

--- !XCOFF
FileHeader:
  MagicNumber: [[MAGIC=0x1DF]]
AuxiliaryHeader:
  Magic: 0x10B
Sections:
  - Flags:       [ STYP_PAD ]
    SectionData: "1234"
## Set two sections with different contents for a given type to
## demonstrate that the values in the aux header depend on the first one.
  - Flags:       [ STYP_TEXT ]
    SectionData: "1234000000"
  - Flags:       [ STYP_TEXT ]
    SectionData: "1234"
  - Flags:       [ STYP_DATA ]
    SectionData: "1234000000"
  - Flags:       [ STYP_DATA ]
    SectionData: "1234"
  - Flags:       [ STYP_BSS ]
    SectionData: "1234000000"
  - Flags:       [ STYP_BSS ]
    SectionData: "1234"
  - Flags:       [ STYP_TDATA ]
    SectionData: "1234000000"
  - Flags:       [ STYP_TDATA ]
    SectionData: "1234"
  - Flags:       [ STYP_TBSS ]
    SectionData: "1234000000"
  - Flags:       [ STYP_TBSS ]
    SectionData: "1234"
  - Flags:       [ STYP_LOADER ]
    SectionData: "1234000000"
  - Flags:       [ STYP_LOADER ]
    SectionData: "1234"

## Case2: same as case1, except producing 64-bit output.
# RUN: yaml2obj %s --docnum=1 -DMAGIC=0x1F7 -o %t2
# RUN: llvm-readobj --auxiliary-header %t2 | FileCheck %s --check-prefix=CASE2

## Case2: same as case1, except it is 64-bit.
# RUN: yaml2obj %s --docnum=1 -DMAGIC=0x1F7 -o %t2
# RUN: llvm-readobj --auxiliary-header %t2 | FileCheck %s --check-prefix=CASE2

# CASE2:      AuxiliaryHeader {
# CASE2-NEXT:   Magic: 0x10B
# CASE2-NEXT:   Version: 0x1
# CASE2-NEXT:   Reserved for debugger: 0x0
# CASE2-NEXT:   .text section start address: 0x2
# CASE2-NEXT:   .data section start address: 0xE
# CASE2-NEXT:   TOC anchor address: 0x0
# CASE2-NEXT:   Section number of entryPoint: 0
# CASE2-NEXT:   Section number of .text: 2
# CASE2-NEXT:   Section number of .data: 4
# CASE2-NEXT:   Section number of TOC: 0
# CASE2-NEXT:   Section number of loader data: 12
# CASE2-NEXT:   Section number of .bss: 6
# CASE2-NEXT:   Maxium alignment of .text: 0x0
# CASE2-NEXT:   Maxium alignment of .data: 0x0
# CASE2-NEXT:   Module type: 0x0
# CASE2-NEXT:   CPU type of objects: 0x0
# CASE2-NEXT:   (Reserved): 0x0
# CASE2-NEXT:   Text page size: 0x0
# CASE2-NEXT:   Data page size: 0x0
# CASE2-NEXT:   Stack page size: 0x0
# CASE2-NEXT:   Flag: 0x0
# CASE2-NEXT:   Alignment of thread-local storage: 0x0
# CASE2-NEXT:   Size of .text section: 0x8
# CASE2-NEXT:   Size of .data section: 0x8
# CASE2-NEXT:   Size of .bss section: 0x8
# CASE2-NEXT:   Entry point address: 0x0
# CASE2-NEXT:   Maximum stack size: 0x0
# CASE2-NEXT:   Maximum data size: 0x0
# CASE2-NEXT:   Section number for .tdata: 8
# CASE2-NEXT:   Section number for .tbss: 10
# CASE2-NEXT:   Additional flags 64-bit XCOFF: 0x8000
# CASE2-NEXT: }

## Case3: if all fields in the aux header are omitted and text/data/bss/tdata/tbss/loader
##        sections are not set, we set the fields using default values.
# RUN: yaml2obj %s --docnum=2 -o %t3
# RUN: llvm-readobj --auxiliary-header %t3 | FileCheck %s --check-prefix=CASE3

# CASE3:      AuxiliaryHeader {
# CASE3-NEXT:   Magic: 0x1
# CASE3-NEXT:   Version: 0x1
# CASE3-NEXT:   Size of .text section: 0x0
# CASE3-NEXT:   Size of .data section: 0x0
# CASE3-NEXT:   Size of .bss section: 0x0
# CASE3-NEXT:   Entry point address: 0x0
# CASE3-NEXT:   .text section start address: 0x0
# CASE3-NEXT:   .data section start address: 0x0
# CASE3-NEXT:   TOC anchor address: 0x0
# CASE3-NEXT:   Section number of entryPoint: 0
# CASE3-NEXT:   Section number of .text: 0
# CASE3-NEXT:   Section number of .data: 0
# CASE3-NEXT:   Section number of TOC: 0
# CASE3-NEXT:   Section number of loader data: 0
# CASE3-NEXT:   Section number of .bss: 0
# CASE3-NEXT:   Maxium alignment of .text: 0x0
# CASE3-NEXT:   Maxium alignment of .data: 0x0
# CASE3-NEXT:   Module type: 0x0
# CASE3-NEXT:   CPU type of objects: 0x0
# CASE3-NEXT:   (Reserved): 0x0
# CASE3-NEXT:   Maximum stack size: 0x0
# CASE3-NEXT:   Maximum data size: 0x0
# CASE3-NEXT:   Reserved for debugger: 0x0
# CASE3-NEXT:   Text page size: 0x0
# CASE3-NEXT:   Data page size: 0x0
# CASE3-NEXT:   Stack page size: 0x0
# CASE3-NEXT:   Flag: 0x0
# CASE3-NEXT:   Alignment of thread-local storage: 0x0
# CASE3-NEXT:   Section number for .tdata: 0
# CASE3-NEXT:   Section number for .tbss: 0
# CASE3-NEXT: }

--- !XCOFF
FileHeader:
  MagicNumber: [[MAGIC=0x1DF]]
AuxiliaryHeader:

## Case4: same as case3, except producing 64-bit output.
# RUN: yaml2obj %s --docnum=2 -DMAGIC=0x1F7 -o %t4
# RUN: llvm-readobj --auxiliary-header %t4 | FileCheck %s --check-prefix=CASE4

# CASE4:      AuxiliaryHeader {
# CASE4-NEXT:   Magic: 0x1
# CASE4-NEXT:   Version: 0x1
# CASE4-NEXT:   Reserved for debugger: 0x0
# CASE4-NEXT:   .text section start address: 0x0
# CASE4-NEXT:   .data section start address: 0x0
# CASE4-NEXT:   TOC anchor address: 0x0
# CASE4-NEXT:   Section number of entryPoint: 0
# CASE4-NEXT:   Section number of .text: 0
# CASE4-NEXT:   Section number of .data: 0
# CASE4-NEXT:   Section number of TOC: 0
# CASE4-NEXT:   Section number of loader data: 0
# CASE4-NEXT:   Section number of .bss: 0
# CASE4-NEXT:   Maxium alignment of .text: 0x0
# CASE4-NEXT:   Maxium alignment of .data: 0x0
# CASE4-NEXT:   Module type: 0x0
# CASE4-NEXT:   CPU type of objects: 0x0
# CASE4-NEXT:   (Reserved): 0x0
# CASE4-NEXT:   Text page size: 0x0
# CASE4-NEXT:   Data page size: 0x0
# CASE4-NEXT:   Stack page size: 0x0
# CASE4-NEXT:   Flag: 0x0
# CASE4-NEXT:   Alignment of thread-local storage: 0x0
# CASE4-NEXT:   Size of .text section: 0x0
# CASE4-NEXT:   Size of .data section: 0x0
# CASE4-NEXT:   Size of .bss section: 0x0
# CASE4-NEXT:   Entry point address: 0x0
# CASE4-NEXT:   Maximum stack size: 0x0
# CASE4-NEXT:   Maximum data size: 0x0
# CASE4-NEXT:   Section number for .tdata: 0
# CASE4-NEXT:   Section number for .tbss: 0
# CASE4-NEXT:   Additional flags 64-bit XCOFF: 0x8000
# CASE4-NEXT: }
