Compiler projects using llvm
## This is a test case to check how obj2yaml dumps symbols.

## Check that we only dump Size and Value keys when
## their values are not 0.

# RUN: yaml2obj %s -o %t1
# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=FIELDS-DEF

# FIELDS-DEF:      Symbols:
# FIELDS-DEF-NEXT:   - Name:  foo
# FIELDS-DEF-NEXT:   - Name:  bar
# FIELDS-DEF-NEXT:     Value: 0x1
# FIELDS-DEF-NEXT:     Size:  0x1
# FIELDS-DEF-NEXT: ...

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Symbols:
  - Name:  foo
    Size:  0x0
    Value: 0x0
  - Name:  bar
    Size:  0x1
    Value: 0x1

## Check how we dump unnamed section symbols.
## Check we are able to handle the section symbol for the null section.
## Document we name them with a section name they describe.

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=SECTION-SYM

# SECTION-SYM:      --- !ELF
# SECTION-SYM-NEXT: FileHeader:
# SECTION-SYM-NEXT:   Class: ELFCLASS64
# SECTION-SYM-NEXT:   Data:  ELFDATA2LSB
# SECTION-SYM-NEXT:   Type:  ET_REL
# SECTION-SYM-NEXT: Sections:
# SECTION-SYM-NEXT:   - Name: .section
# SECTION-SYM-NEXT:     Type: SHT_PROGBITS
# SECTION-SYM-NEXT: Symbols:
# SECTION-SYM-NEXT:   - Type: STT_SECTION
# SECTION-SYM-NEXT:   - Name:    .section
# SECTION-SYM-NEXT:     Type:    STT_SECTION
# SECTION-SYM-NEXT:     Section: .section
# SECTION-SYM-NEXT:   - Name:    .section
# SECTION-SYM-NEXT:     Type:    STT_SECTION
# SECTION-SYM-NEXT:     Section: .section
# SECTION-SYM-NEXT: ...

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .section
    Type: SHT_PROGBITS
Symbols:
  - Type:  STT_SECTION
    Index: 0
  - Type:  STT_SECTION
    Index: 1
  - Type:  STT_SECTION
    Index: 1