Compiler projects using llvm
## We have a special "<none>" value for all keys that are implemented
## as Optional<> in the code. Setting a key to "<none>" means no-op and
## works in the same way as when a field was not specified at all.

## Test a few keys for which the "<none>" value is supported.
## We do not test all possible keys, because it would be too verbose.
## It reasonable to test all keys for a section, because normally many
## of them would conflict or intersect when specified together.
# RUN: yaml2obj %s --docnum=1 -o %t-none
# RUN: yaml2obj %s --docnum=2 -o %t-base
# RUN: cmp %t-none %t-base

## We do not use the TEST macro. It exists to
## demonstrate the expected use case for the <none> word.
--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name:         .bar
    Type:         SHT_PROGBITS
    Flags:        [[TEST=<none>]] ## Comment
    Offset:       [[TEST=<none>]]
    Address:      [[TEST=<none>]]
    Content:      [[TEST=<none>]]
    Size:         [[TEST=<none>]]
    ContentArray: [[TEST=<none>]]
    Info:         [[TEST=<none>]]
    EntSize:      [[TEST=<none>]]
    ShName:       [[TEST=<none>]]
    ShOffset:     [[TEST=<none>]]
    ShSize:       [[TEST=<none>]]
    ShFlags:      [[TEST=<none>]]

## The same document, but all fields that were set to <none> are removed.
--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .bar
    Type: SHT_PROGBITS