## Check that yaml2obj can parse SymbolAlignmentAndType, SymbolAlignment,
## and SymbolType.
# RUN: yaml2obj %s --docnum=1 -DMAGIC=0x01DF -o %t32
# RUN: obj2yaml %t32 | FileCheck %s --check-prefix=CHECK
# RUN: yaml2obj %s --docnum=1 -DMAGIC=0x01F7 -o %t64
# RUN: obj2yaml %t64 | FileCheck %s --check-prefix=CHECK
# CHECK: --- !XCOFF
# CHECK-NEXT: FileHeader:
# CHECK-NEXT: MagicNumber:
# CHECK: Symbols:
# CHECK: - Name: .fcn1
# CHECK: NumberOfAuxEntries: 1
# CHECK-NEXT: AuxEntries:
# CHECK-NEXT: - Type: AUX_CSECT
# CHECK: SymbolType: XTY_ER
# CHECK-NEXT: SymbolAlignment: 4
# CHECK: - Name: .fcn2
# CHECK: NumberOfAuxEntries: 1
# CHECK-NEXT: AuxEntries:
# CHECK-NEXT: - Type: AUX_CSECT
# CHECK: SymbolType: XTY_SD
# CHECK-NEXT: SymbolAlignment: 2
# CHECK: - Name: .fcn3
# CHECK: NumberOfAuxEntries: 1
# CHECK-NEXT: AuxEntries:
# CHECK-NEXT: - Type: AUX_CSECT
# CHECK: SymbolType: XTY_SD
# CHECK-NEXT: SymbolAlignment: 0
--- !XCOFF
FileHeader:
MagicNumber: [[MAGIC]]
Symbols:
- StorageClass: C_EXT
Name: .fcn1
AuxEntries:
- Type: AUX_CSECT
SymbolAlignment: 4
- StorageClass: C_EXT
Name: .fcn2
AuxEntries:
- Type: AUX_CSECT
SymbolAlignment: 2
SymbolType: XTY_SD
- StorageClass: C_EXT
Name: .fcn3
AuxEntries:
- Type: AUX_CSECT
SymbolType: XTY_SD
## Ensure that SymbolAlignment is in range.
# RUN: not yaml2obj %s --docnum=2 -o %t 2>&1 | FileCheck %s --check-prefix=ERROR1
# ERROR1: symbol alignment must be less than 32
--- !XCOFF
FileHeader:
MagicNumber: 0x1F7
Symbols:
- StorageClass: C_EXT
Name: .fcn1
AuxEntries:
- Type: AUX_CSECT
SymbolType: XTY_SD
SymbolAlignment: 32
SectionOrLengthLo: 4
## Ensure that neither SymbolAlignment nor SymbolType can be specified if
## SymbolAlignmentAndType is specified.
# RUN: not yaml2obj %s --docnum=3 -o %t 2>&1 | FileCheck %s --check-prefix=ERROR2
# ERROR2: cannot specify SymbolType or SymbolAlignment if SymbolAlignmentAndType is specified
--- !XCOFF
FileHeader:
MagicNumber: 0x1DF
Symbols:
- StorageClass: C_EXT
Name: .fcn1
AuxEntries:
- Type: AUX_CSECT
SymbolAlignmentAndType: 17
SymbolAlignment: 4
SectionOrLength: 4
# RUN: not yaml2obj %s --docnum=4 -o %t 2>&1 | FileCheck %s --check-prefix=ERROR2
--- !XCOFF
FileHeader:
MagicNumber: 0x1DF
Symbols:
- StorageClass: C_EXT
Name: .fcn1
AuxEntries:
- Type: AUX_CSECT
SymbolAlignmentAndType: 17
SymbolAlignment: 4
SymbolType: XTY_CM
SectionOrLength: 4
# RUN: not yaml2obj %s --docnum=5 -o %t 2>&1 | FileCheck %s --check-prefix=ERROR2
--- !XCOFF
FileHeader:
MagicNumber: 0x1F7
Symbols:
- StorageClass: C_EXT
- StorageClass: C_EXT
Name: .fcn2
AuxEntries:
- Type: AUX_CSECT
SymbolAlignmentAndType: 18
SymbolType: XTY_SD
SectionOrLengthLo: 4