## Check how yaml2obj produces .llvm_bb_addr_map sections.

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-readobj --sections --section-data %t1 | FileCheck %s

## Case 1: Specify content.
# CHECK:      Section {
# CHECK:        Index: 1
# CHECK-NEXT:   Name: .llvm_bb_addr_map (1)
# CHECK-NEXT:   Type: SHT_LLVM_BB_ADDR_MAP (0x6FFF4C08)
# CHECK-NEXT:   Flags [ (0x0)
# CHECK-NEXT:   ]
# CHECK-NEXT:   Address: 0x0
# CHECK-NEXT:   Offset: 0x40
# CHECK-NEXT:   Size: 12
# CHECK-NEXT:   Link: 0
# CHECK-NEXT:   Info: 0
# CHECK-NEXT:   AddressAlignment: 0
# CHECK-NEXT:   EntrySize: 0
# CHECK-NEXT:   SectionData (
# CHECK-NEXT:     0000: 00000000 00000000 01010203
# CHECK-NEXT:   )
# CHECK-NEXT: }

## Case 2: Empty.
# CHECK:        Name: .llvm_bb_addr_map (1)
# CHECK:        Size:
# CHECK-SAME:   {{^ 0$}}

## Case 3: Specify Size only.
# CHECK:        Name: .llvm_bb_addr_map (1)
# CHECK:        SectionData (
# CHECK-NEXT:     0000: 00000000 00000000
# CHECK-NEXT:   )

# Case 4: Specify Entries.
# CHECK:        Name: .llvm_bb_addr_map (1)
# CHECK:        SectionData (
# CHECK-NEXT:     0000: 20000000 00000000 01010203
# CHECK-NEXT:   )

# Case 5: Specify Entries and omit the Address field.
# CHECK:        Name: .llvm_bb_addr_map (1)
# CHECK:        Address:
# CHECK-SAME:   {{^ 0x0$}}
# CHECK:        SectionData (
# CHECK-NEXT:     0000: 00000000 00000000 01010203
# CHECK-NEXT:   )

# Case 6: Override the NumBlocks field.
# CHECK:        Name: .llvm_bb_addr_map (1)
# CHECK:        SectionData (
# CHECK-NEXT:     0000: 20000000 00000000 02010203
# CHECK-NEXT:   )

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:

## Test the following cases:

## 1) We can produce an .llvm_bb_addr_map section from a description with section
##    content.
##  Specify Content.
  - Name:    '.llvm_bb_addr_map (1)'
    Type:    SHT_LLVM_BB_ADDR_MAP
    Content: "000000000000000001010203"

## 2) We can produce an empty .llvm_bb_addr_map section from a description
##    with empty section content.
  - Name:    '.llvm_bb_addr_map (2)'
    Type:    SHT_LLVM_BB_ADDR_MAP

## 3) We can produce a zero .llvm_bb_addr_map section of a specific size when
##    we specify the size only.
  - Name:    '.llvm_bb_addr_map (3)'
    Type:    SHT_LLVM_BB_ADDR_MAP
    Size:    8

## 4) We can produce an .llvm_bb_addr_map section from a description with
##    Entries.
  - Name:    '.llvm_bb_addr_map (4)'
    Type:    SHT_LLVM_BB_ADDR_MAP
    Entries:
      - Address:   0x0000000000000020
        BBEntries:
          - AddressOffset:    0x00000001
            Size:             0x00000002
            Metadata:         0x00000003

## 5) When specifying the description with Entries, the 'Address' field will be
##    zero when omitted.
  - Name:    '.llvm_bb_addr_map (5)'
    Type:    SHT_LLVM_BB_ADDR_MAP
    Entries:
      - BBEntries:
          - AddressOffset:    0x00000001
            Size:             0x00000002
            Metadata:         0x00000003

## 6) We can override the NumBlocks field with a value different from the
##    actual number of BB Entries.
  - Name:    '.llvm_bb_addr_map (6)'
    Type:    SHT_LLVM_BB_ADDR_MAP
    Entries:
      - Address:   0x0000000000000020
        NumBlocks: 2
        BBEntries:
          - AddressOffset:    0x00000001
            Size:             0x00000002
            Metadata:         0x00000003

## Check we can't use Entries at the same time as either Content or Size.
# RUN: not yaml2obj --docnum=2 -DCONTENT="00" %s 2>&1 | FileCheck %s --check-prefix=INVALID
# RUN: not yaml2obj --docnum=2 -DSIZE="0" %s 2>&1 | FileCheck %s --check-prefix=INVALID

# INVALID: error: "Entries" cannot be used with "Content" or "Size"

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:
##  Specify Content and Size
  - Name:    '.llvm_bb_addr_map'
    Type:    SHT_LLVM_BB_ADDR_MAP
    Entries: []
    Content: [[CONTENT=<none>]]
    Size:    [[SIZE=<none>]]
