## Check that we correctly display the contents of the .stack_sizes section
## in a relocatable object file.

# RUN: yaml2obj --docnum=1 %s -o %t01
# RUN: llvm-readelf --stack-sizes %t01 \
# RUN:   | FileCheck %s --check-prefix=RELOC-GNU --strict-whitespace --match-full-lines
# RUN: llvm-readobj --stack-sizes %t01 | FileCheck %s --check-prefix=RELOC-LLVM

#      RELOC-GNU:         Size     Functions
# RELOC-GNU-NEXT:           16     referenced_by_symbol_foo
# RELOC-GNU-NEXT:           32     referenced_via_section_bar
# RELOC-GNU-NEXT:            8     separate_text_section_baz
#  RELOC-GNU-NOT:{{.}}

# RELOC-LLVM:      StackSizes [
# RELOC-LLVM-NEXT:   Entry {
# RELOC-LLVM-NEXT:     Functions: [referenced_by_symbol_foo]
# RELOC-LLVM-NEXT:     Size: 0x10
# RELOC-LLVM-NEXT:   }
# RELOC-LLVM-NEXT:   Entry {
# RELOC-LLVM-NEXT:     Functions: [referenced_via_section_bar]
# RELOC-LLVM-NEXT:     Size: 0x20
# RELOC-LLVM-NEXT:   }
# RELOC-LLVM-NEXT:   Entry {
# RELOC-LLVM-NEXT:     Functions: [separate_text_section_baz]
# RELOC-LLVM-NEXT:     Size: 0x8
# RELOC-LLVM-NEXT:   }
# RELOC-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .text.baz
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Entries:
      - Size: 0x10
      - Size: 0x20
    Link:    .text
  - Name:    '.stack_sizes (1)'
    Type:    SHT_PROGBITS
    Entries:
      - Address: 0x20
        Size:    0x8
    Link:    .text.baz
  - Name:    .rela.stack_sizes
    Type:    SHT_RELA
    Info:    .stack_sizes
    Relocations:
## A symbol relative reference. 
      - Offset: 0
        Symbol: referenced_by_symbol_foo 
        Type:   R_X86_64_64
## A section relative reference. 
      - Offset: 9
        Addend: 16
        Symbol: .text
        Type:   R_X86_64_64
  - Name:   '.rela.stack_sizes (1)'
    Type:   SHT_RELA
    Info:   '.stack_sizes (1)'
    Relocations:
      - Offset: 0
        Symbol: separate_text_section_baz
        Type:   R_X86_64_64
  - Name:     .symtab
    Type:     SHT_SYMTAB
    ShOffset: [[SYMTABOFFSET=<none>]]
Symbols:
  - Name:    separate_text_section_baz
    Section: [[SEC1=.text.baz]]
    Type:    STT_FUNC
    Index:   [[SEC1INDEX=<none>]]
  - Name:    .text
    Section: .text
    Type:    STT_SECTION
  - Name:    referenced_by_symbol_foo
    Section: .text
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    referenced_via_section_bar
    Section: .text
    Value:   0x10
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that we report a warning when we are unable to read
## the symbol table when dumping stack sizes.

# RUN: yaml2obj --docnum=1 %s -DSYMTABOFFSET=0xffffeeee -o %t01.broken.symtab
# RUN: llvm-readelf --stack-sizes %t01.broken.symtab 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t01.broken.symtab --check-prefix=SYMTAB-GNU --implicit-check-not=warning:
# RUN: llvm-readobj --stack-sizes %t01.broken.symtab 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t01.broken.symtab --check-prefix=SYMTAB-LLVM --implicit-check-not=warning:

# SYMTAB-GNU:      Stack Sizes:
# SYMTAB-GNU-NEXT:          Size     Functions
# SYMTAB-GNU-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 0 in SHT_RELA section with index 5: unable to read an entry with index 3 from SHT_SYMTAB section with index 7: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-GNU-NEXT: warning: '[[FILE]]': unable to read the symbol table: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-GNU-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 3
# SYMTAB-GNU-NEXT:            16     ?
# SYMTAB-GNU-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 1 in SHT_RELA section with index 5: unable to read an entry with index 2 from SHT_SYMTAB section with index 7: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-GNU-NEXT:            32     ?
# SYMTAB-GNU-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 0 in SHT_RELA section with index 6: unable to read an entry with index 1 from SHT_SYMTAB section with index 7: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-GNU-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 4
# SYMTAB-GNU-NEXT:             8     ?

# SYMTAB-LLVM:      StackSizes [
# SYMTAB-LLVM-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 0 in SHT_RELA section with index 5: unable to read an entry with index 3 from SHT_SYMTAB section with index 7: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-LLVM-NEXT: warning: '[[FILE]]': unable to read the symbol table: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-LLVM-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 3
# SYMTAB-LLVM-NEXT:   Entry {
# SYMTAB-LLVM-NEXT:     Functions: [?]
# SYMTAB-LLVM-NEXT:     Size: 0x10
# SYMTAB-LLVM-NEXT:   }
# SYMTAB-LLVM-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 1 in SHT_RELA section with index 5: unable to read an entry with index 2 from SHT_SYMTAB section with index 7: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-LLVM-NEXT:   Entry {
# SYMTAB-LLVM-NEXT:     Functions: [?]
# SYMTAB-LLVM-NEXT:     Size: 0x20
# SYMTAB-LLVM-NEXT:   }
# SYMTAB-LLVM-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 0 in SHT_RELA section with index 6: unable to read an entry with index 1 from SHT_SYMTAB section with index 7: section [index 7] has a sh_offset (0xffffeeee) + sh_size (0x78) that is greater than the file size (0x450)
# SYMTAB-LLVM-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 4
# SYMTAB-LLVM-NEXT:   Entry {
# SYMTAB-LLVM-NEXT:     Functions: [?]
# SYMTAB-LLVM-NEXT:     Size: 0x8
# SYMTAB-LLVM-NEXT:   }
# SYMTAB-LLVM-NEXT: ]

## In this case we have a function symbol with an invalid section index.
## Document what we dump.

# RUN: yaml2obj --docnum=1 %s -DSEC1="<none>" -DSEC1INDEX=0xFF -o %t01.broken.sym
# RUN: llvm-readelf --stack-sizes %t01.broken.sym 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t01.broken.sym --check-prefix=SYM-GNU --implicit-check-not=warning:
# RUN: llvm-readobj --stack-sizes %t01.broken.sym 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t01.broken.sym --check-prefix=SYM-LLVM --implicit-check-not=warning:

# SYM-GNU:      Stack Sizes:
# SYM-GNU-NEXT:          Size     Functions
# SYM-GNU-NEXT: warning: '[[FILE]]': unable to get address of symbol 'separate_text_section_baz': invalid section index: 255
# SYM-GNU-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 3
# SYM-GNU-NEXT:            16     ?
# SYM-GNU-NEXT:            32     ?
# SYM-GNU-NEXT: warning: '[[FILE]]': cannot identify the section for relocation symbol 'separate_text_section_baz': invalid section index: 255
# SYM-GNU-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 4
# SYM-GNU-NEXT:             8     ?

# SYM-LLVM:      StackSizes [
# SYM-LLVM-NEXT: warning: '[[FILE]]': unable to get address of symbol 'separate_text_section_baz': invalid section index: 255
# SYM-LLVM-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 3
# SYM-LLVM-NEXT:   Entry {
# SYM-LLVM-NEXT:     Functions: [?]
# SYM-LLVM-NEXT:     Size: 0x10
# SYM-LLVM-NEXT:   }
# SYM-LLVM-NEXT:   Entry {
# SYM-LLVM-NEXT:     Functions: [?]
# SYM-LLVM-NEXT:     Size: 0x20
# SYM-LLVM-NEXT:   }
# SYM-LLVM-NEXT: warning: '[[FILE]]': cannot identify the section for relocation symbol 'separate_text_section_baz': invalid section index: 255
# SYM-LLVM-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 4
# SYM-LLVM-NEXT:   Entry {
# SYM-LLVM-NEXT:     Functions: [?]
# SYM-LLVM-NEXT:     Size: 0x8
# SYM-LLVM-NEXT:   }
# SYM-LLVM-NEXT: ]

## Check that we correctly report the stack sizes in an executable (non-relocatable)
## object file. This also shows that the sh_link field is ignored in this situation
## without warning.

# RUN: yaml2obj --docnum=2 %s -o %t02
# RUN: llvm-readelf --stack-sizes %t02 2>&1 \
# RUN:   | FileCheck %s --check-prefix=EXEC-GNU --strict-whitespace \
# RUN:                  --match-full-lines --implicit-check-not=warning:
# RUN: llvm-readobj --stack-sizes %t02 2>&1 \
# RUN:   | FileCheck %s --check-prefix=EXEC-LLVM --implicit-check-not=warning:

#      EXEC-GNU:         Size     Functions
# EXEC-GNU-NEXT:           16     other
# EXEC-GNU-NEXT:           32     other_end
# EXEC-GNU-NEXT:           48     bar
#  EXEC-GNU-NOT:{{.}}

# EXEC-LLVM:      StackSizes [
# EXEC-LLVM-NEXT:   Entry {
# EXEC-LLVM-NEXT:     Functions: [other]
# EXEC-LLVM-NEXT:     Size: 0x10
# EXEC-LLVM-NEXT:   }
# EXEC-LLVM-NEXT:   Entry {
# EXEC-LLVM-NEXT:     Functions: [other_end]
# EXEC-LLVM-NEXT:     Size: 0x20
# EXEC-LLVM-NEXT:   }
# EXEC-LLVM-NEXT:   Entry {
# EXEC-LLVM-NEXT:     Functions: [bar]
# EXEC-LLVM-NEXT:     Size: 0x30
# EXEC-LLVM-NEXT:   }
# EXEC-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .text2
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Entries:
      - Address: 0x0
        Size:    0x10
      - Address: 0x10
        Size:    0x20
      - Address: 0x20
        Size:    0x30
    Link:    .text2
Symbols:
  ## Undefined symbols are ignored.
  - Name:    undefined
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  ## sh_link of .stack_sizes is ignored for non-reloctable objects.
  - Name:    other
    Section: .text
    Value:   0
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    other_end
    Section: .text
    Value:   0x10
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    bar
    Section: .text2
    Value:   0x20
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that we report a warning when we find relocations whose offsets point outside
## of the .stack_sizes section.

# RUN: yaml2obj --docnum=3 %s -o %t03
# RUN: llvm-readelf --stack-sizes %t03 2>&1 | FileCheck %s --check-prefix=SHORT-GNU -DFILE=%t03
# RUN: llvm-readobj --stack-sizes %t03 2>&1 | FileCheck %s --check-prefix=SHORT-LLVM -DFILE=%t03

# SHORT-GNU:      Stack Sizes:
# SHORT-GNU-NEXT:  Size     Functions
# SHORT-GNU-NEXT:     8     foo
# SHORT-GNU-NEXT: warning: '[[FILE]]': found invalid relocation offset (0x1) into SHT_PROGBITS section with index 2 while trying to extract a stack size entry
# SHORT-GNU-NEXT:     8     foo

# SHORT-LLVM:     StackSizes [
# SHORT-LLVM-NEXT:   Entry {
# SHORT-LLVM-NEXT:     Functions: [foo]
# SHORT-LLVM-NEXT:     Size: 0x8
# SHORT-LLVM-NEXT:   }
# SHORT-LLVM-NEXT: warning: '[[FILE]]': found invalid relocation offset (0x1) into SHT_PROGBITS section with index 2 while trying to extract a stack size entry
# SHORT-LLVM-NEXT:   Entry {
# SHORT-LLVM-NEXT:     Functions: [foo]
# SHORT-LLVM-NEXT:     Size: 0x8
# SHORT-LLVM-NEXT:   }
# SHORT-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Link:    .text
    Entries:
      - Size: 0x8
  - Name:    .rela.stack_sizes
    Type:    SHT_RELA
    Info:    .stack_sizes
    Relocations:
      - Offset: 0x0
        Symbol: foo
        Type:   R_X86_64_64
      - Offset: 0x1
        Symbol: foo
        Type:   R_X86_64_64
      - Offset: 0x1
        Symbol: foo
        Type:   R_X86_64_64
      - Offset: 0x0
        Symbol: foo
        Type:   R_X86_64_64
Symbols:
  - Name:    foo
    Section: .text
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that we warn about a function symbol that is not in the section
## that is referenced by the stack sizes section's sh_link, for relocatable
## output.

# RUN: yaml2obj --docnum=4 %s -o %t04
# RUN: llvm-readelf --stack-sizes %t04 2> %t04-gnu.err | FileCheck %s --check-prefix=WRONGSECTION-GNU
# RUN: FileCheck %s < %t04-gnu.err --check-prefix=WRONGSECTION-ERR -DFILE=%t04
# RUN: llvm-readobj --stack-sizes %t04 2> %t04-llvm.err | FileCheck %s --check-prefix=WRONGSECTION-LLVM
# RUN: FileCheck %s < %t04-llvm.err --check-prefix=WRONGSECTION-ERR -DFILE=%t04

# RUN: llvm-readelf --stack-sizes --demangle %t04 2>&1 | FileCheck %s --check-prefix=WRONGSECTION-DEMANGLE-ERR -DFILE=%t04
# RUN: llvm-readobj --stack-sizes --demangle %t04 2>&1 | FileCheck %s --check-prefix=WRONGSECTION-DEMANGLE-ERR -DFILE=%t04

# WRONGSECTION-GNU:      Size Functions
# WRONGSECTION-GNU-NEXT: 8 _Z3foof

# WRONGSECTION-LLVM:      StackSizes [
# WRONGSECTION-LLVM-NEXT:   Entry {
# WRONGSECTION-LLVM-NEXT:     Functions: [_Z3foof]
# WRONGSECTION-LLVM-NEXT:     Size: 0x8
# WRONGSECTION-LLVM-NEXT:   }
# WRONGSECTION-LLVM-NEXT: ]

# WRONGSECTION-ERR:           warning: '[[FILE]]': relocation symbol '_Z3foof' is not in the expected section
# WRONGSECTION-DEMANGLE-ERR:  warning: '[[FILE]]': relocation symbol 'foo(float)' is not in the expected section

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Size:    8
  - Name:    .text2
    Type:    SHT_PROGBITS
    Size:    8
    Flags:   [SHF_ALLOC]
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Entries:
      - Size: 0x8
    Link:    .text2
  - Name:    .rela.stack_sizes
    Type:    SHT_RELA
    Info:    .stack_sizes
    Relocations:
      - Offset: 0
        Symbol: _Z3foof
        Type:   R_X86_64_64
Symbols:
  - Name:    _Z3foof
    Section: .text
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that we report a warning when a stack sizes section ends with an incomplete stack size entry.

# RUN: yaml2obj --docnum=5 %s -o %t05
# RUN: llvm-readelf --stack-sizes %t05 2>&1 | \
# RUN:   FileCheck %s --check-prefix=SUDDENEND-GNU -DFILE=%t05
# RUN: llvm-readobj --stack-sizes %t05 2>&1 | \
# RUN:   FileCheck %s --check-prefix=SUDDENEND-LLVM -DFILE=%t05

# SUDDENEND-GNU:      Stack Sizes:
# SUDDENEND-GNU-NEXT:  Size     Functions
# SUDDENEND-GNU-NEXT:     8     foo
# SUDDENEND-GNU-NEXT: warning: '[[FILE]]': SHT_PROGBITS section with index 2 ended while trying to extract a stack size entry
# SUDDENEND-GNU-NEXT:     8     foo
# SUDDENEND-GNU-NEXT: warning: '[[FILE]]': SHT_PROGBITS section with index 3 ended while trying to extract a stack size entry

# SUDDENEND-LLVM:      StackSizes [
# SUDDENEND-LLVM-NEXT:   Entry {
# SUDDENEND-LLVM-NEXT:     Functions: [foo]
# SUDDENEND-LLVM-NEXT:     Size: 0x8
# SUDDENEND-LLVM-NEXT:   }
# SUDDENEND-LLVM-NEXT: warning: '[[FILE]]': SHT_PROGBITS section with index 2 ended while trying to extract a stack size entry
# SUDDENEND-LLVM-NEXT:   Entry {
# SUDDENEND-LLVM-NEXT:     Functions: [foo]
# SUDDENEND-LLVM-NEXT:     Size: 0x8
# SUDDENEND-LLVM-NEXT:   }
# SUDDENEND-LLVM-NEXT: warning: '[[FILE]]': SHT_PROGBITS section with index 3 ended while trying to extract a stack size entry
# SUDDENEND-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
  - Name: .stack_sizes
    Type: SHT_PROGBITS
    Link: .text
    Entries:
      - Size: 0x8
      - Size: 0x10
## 0x11 == the normal size minus 1.
    ShSize: 0x11
  - Name: .stack_sizes (1)
    Type: SHT_PROGBITS
    Link: .text
    Entries:
      - Size: 0x8
      - Size: 0x10
    ShSize: 0x11
Symbols:
  - Name:    foo
    Section: .text
    Type:    STT_FUNC

## Check that we report an invalid stack size, which is represented by a ULEB that
## ends in a byte with the high bit set.

# RUN: yaml2obj --docnum=6 %s -o %t06
# RUN: llvm-readelf --stack-sizes %t06 2>&1 | \
# RUN:   FileCheck %s --check-prefix=BADSIZE -DFILE=%t06 --implicit-check-not=warning:
# RUN: llvm-readobj --stack-sizes %t06 2>&1 | \
# RUN:   FileCheck %s --check-prefix=BADSIZE -DFILE=%t06 --implicit-check-not=warning:

# BADSIZE: warning: '[[FILE]]': could not extract a valid stack size from SHT_PROGBITS section with index 2: unable to decode LEB128 at offset 0x00000008: malformed uleb128, extends past end
# BADSIZE: warning: '[[FILE]]': could not extract a valid stack size from SHT_PROGBITS section with index 3: unable to decode LEB128 at offset 0x00000008: malformed uleb128, extends past end

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Content: "100000000000000080"
    Link:    .text
  - Name:    .stack_sizes (1)
    Type:    SHT_PROGBITS
    Content: "100000000000000080"
    Link:    .text
Symbols:
  - Name:    foo
    Section: .text
    Value:   0x10
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that we report a warning when a relocation symbol does not belong to a
## valid section or when it has an invalid index. We expect a stack size entry
## with an unknown symbol in the output.

# RUN: yaml2obj --docnum=7 %s -o %t07
# RUN: llvm-readelf --stack-sizes %t07 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t07 --check-prefix=BADSECTION-OUT-GNU --implicit-check-not=warning:
# RUN: llvm-readobj --stack-sizes %t07 2>&1 | \
# RUN:   FileCheck %s -DFILE=%t07 --check-prefix=BADSECTION-OUT-LLVM --implicit-check-not=warning:

# BADSECTION-OUT-GNU:      Stack Sizes:
# BADSECTION-OUT-GNU-NEXT:          Size     Functions
# BADSECTION-OUT-GNU-NEXT: warning: '[[FILE]]': cannot identify the section for relocation symbol '_Z3foof': invalid section index: 10
# BADSECTION-OUT-GNU-NEXT: warning: '[[FILE]]': unable to get address of symbol '_Z3foof': invalid section index: 10
# BADSECTION-OUT-GNU-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 2
# BADSECTION-OUT-GNU-NEXT:             8     ?
# BADSECTION-OUT-GNU-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 1 in SHT_RELA section with index 3: unable to read an entry with index 255 from SHT_SYMTAB section with index 4: can't read an entry at 0x17e8: it goes past the end of the section (0x30)
# BADSECTION-OUT-GNU-NEXT:            22     ?
# BADSECTION-OUT-GNU-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 2 in SHT_RELA section with index 3: unable to read an entry with index 255 from SHT_SYMTAB section with index 4: can't read an entry at 0x17e8: it goes past the end of the section (0x30)
# BADSECTION-OUT-GNU-NEXT:            36     ?

# BADSECTION-OUT-LLVM:      StackSizes [
# BADSECTION-OUT-LLVM-NEXT: warning: '[[FILE]]': cannot identify the section for relocation symbol '_Z3foof': invalid section index: 10
# BADSECTION-OUT-LLVM-NEXT: warning: '[[FILE]]': unable to get address of symbol '_Z3foof': invalid section index: 10
# BADSECTION-OUT-LLVM-NEXT: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 2
# BADSECTION-OUT-LLVM-NEXT:   Entry {
# BADSECTION-OUT-LLVM-NEXT:     Functions: [?]
# BADSECTION-OUT-LLVM-NEXT:     Size: 0x8
# BADSECTION-OUT-LLVM-NEXT:   }
# BADSECTION-OUT-LLVM-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 1 in SHT_RELA section with index 3: unable to read an entry with index 255 from SHT_SYMTAB section with index 4: can't read an entry at 0x17e8: it goes past the end of the section (0x30)
# BADSECTION-OUT-LLVM-NEXT:   Entry {
# BADSECTION-OUT-LLVM-NEXT:     Functions: [?]
# BADSECTION-OUT-LLVM-NEXT:     Size: 0x16
# BADSECTION-OUT-LLVM-NEXT:   }
# BADSECTION-OUT-LLVM-NEXT: warning: '[[FILE]]': unable to get the target of relocation with index 2 in SHT_RELA section with index 3: unable to read an entry with index 255 from SHT_SYMTAB section with index 4: can't read an entry at 0x17e8: it goes past the end of the section (0x30)
# BADSECTION-OUT-LLVM-NEXT:   Entry {
# BADSECTION-OUT-LLVM-NEXT:     Functions: [?]
# BADSECTION-OUT-LLVM-NEXT:     Size: 0x24
# BADSECTION-OUT-LLVM-NEXT:   }
# BADSECTION-OUT-LLVM-NEXT: ]

# RUN: llvm-readelf --stack-sizes --demangle %t07 2>&1 | FileCheck %s --check-prefix=BADSECTION-DEMANGLE-ERR -DFILE=%t07
# RUN: llvm-readobj --stack-sizes --demangle %t07 2>&1 | FileCheck %s --check-prefix=BADSECTION-DEMANGLE-ERR -DFILE=%t07

# BADSECTION-DEMANGLE-ERR: warning: '[[FILE]]': cannot identify the section for relocation symbol 'foo(float)'

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Size:    16
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Link:    .text
    Entries:
      - Size: 0x8
      - Size: 0x16
      - Size: 0x24
  - Name:    .rela.stack_sizes
    Type:    SHT_RELA
    Info:    .stack_sizes
    Relocations:
    - Offset: 0
      Symbol: _Z3foof
      Type:   R_X86_64_64
    - Offset: 9
## An invalid symbol index.
      Symbol: 0xff
      Type:   R_X86_64_64
## One more invalid symbol index with the same symbol value (0xff).
    - Offset: 0x12
      Symbol: 0xff
      Type:   R_X86_64_64
Symbols:
  - Name:    _Z3foof
## An invalid section index.
    Index:   10
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that we report a warning when a stack sizes section does not come with
## a corresponding relocation section.

# RUN: yaml2obj --docnum=8 %s -o %t08
# RUN: llvm-readelf --stack-sizes %t08 2> %t08-gnu.err | FileCheck %s --check-prefix=NORELOCSECTION-OUT-GNU
# RUN: FileCheck %s < %t08-gnu.err --check-prefix=NORELOCSECTION-ERR -DFILE=%t08
# RUN: llvm-readobj --stack-sizes %t08 2> %t08-llvm.err | FileCheck %s --check-prefix=NORELOCSECTION-OUT-LLVM
# RUN: FileCheck %s < %t08-llvm.err --check-prefix=NORELOCSECTION-ERR -DFILE=%t08

# NORELOCSECTION-OUT-GNU:     Size Functions
# NORELOCSECTION-OUT-GNU-NOT: {{.}}

# NORELOCSECTION-OUT-LLVM:      StackSizes [
# NORELOCSECTION-OUT-LLVM-NEXT: ]

# NORELOCSECTION-ERR: warning: '[[FILE]]': .stack_sizes (SHT_PROGBITS section with index 2) does not have a corresponding relocation section

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Size:    8
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Link:    .text
    Entries:
      - Size: 0x1

## Check that we handle multiple object files, separately and when they
## are in an archive. This also checks whether we have blank lines between the
## tables.

# RUN: llvm-ar rc %t1.a %t01 %t02
# RUN: llvm-readelf --stack-sizes %t01 %t02 \
# RUN:   | FileCheck %s --check-prefixes=MULTIPLE-GNU,OBJECT -DFILE1=%t01 -DFILE2=%t02
# RUN: llvm-readelf --stack-sizes %t1.a \
# RUN:   | FileCheck %s --check-prefixes=MULTIPLE-GNU,ARCHIVE --strict-whitespace\
# RUN:   --match-full-lines -DFILE=%t1.a
# RUN: llvm-readobj --stack-sizes %t01 %t02 \
# RUN:   | FileCheck %s --check-prefixes=MULTIPLE-LLVM,OBJECT -DFILE1=%t01 -DFILE2=%t02
# RUN: llvm-readobj --stack-sizes %t1.a \
# RUN:   | FileCheck %s --check-prefixes=MULTIPLE-LLVM,ARCHIVE -DFILE=%t1.a

#        OBJECT:File: [[FILE1]]
#       ARCHIVE:File: [[FILE]]({{.*01}})

#      MULTIPLE-GNU:Stack Sizes:
# MULTIPLE-GNU-NEXT:         Size     Functions
# MULTIPLE-GNU-NEXT:           16     referenced_by_symbol_foo
# MULTIPLE-GNU-NEXT:           32     referenced_via_section_bar
# MULTIPLE-GNU-NEXT:            8     separate_text_section_baz
# MULTIPLE-GNU-EMPTY:

# MULTIPLE-LLVM:      StackSizes [
# MULTIPLE-LLVM-NEXT:   Entry {
# MULTIPLE-LLVM-NEXT:     Functions: [referenced_by_symbol_foo]
# MULTIPLE-LLVM-NEXT:     Size: 0x10
# MULTIPLE-LLVM-NEXT:   }
# MULTIPLE-LLVM-NEXT:   Entry {
# MULTIPLE-LLVM-NEXT:     Functions: [referenced_via_section_bar]
# MULTIPLE-LLVM-NEXT:     Size: 0x20
# MULTIPLE-LLVM-NEXT:   }
# MULTIPLE-LLVM-NEXT:   Entry {
# MULTIPLE-LLVM-NEXT:     Functions: [separate_text_section_baz]
# MULTIPLE-LLVM-NEXT:     Size: 0x8
# MULTIPLE-LLVM-NEXT:   }
# MULTIPLE-LLVM-NEXT: ]

#        OBJECT:File: [[FILE2]]
#       ARCHIVE:File: [[FILE]]({{.*02}})

# MULTIPLE-GNU-EMPTY:
# MULTIPLE-GNU-NEXT:Stack Sizes:
# MULTIPLE-GNU-NEXT:         Size     Functions
# MULTIPLE-GNU-NEXT:           16     other
# MULTIPLE-GNU-NEXT:           32     other_end
# MULTIPLE-GNU-NEXT:           48     bar

# MULTIPLE-LLVM:      StackSizes [
# MULTIPLE-LLVM-NEXT:   Entry {
# MULTIPLE-LLVM-NEXT:     Functions: [other]
# MULTIPLE-LLVM-NEXT:     Size: 0x10
# MULTIPLE-LLVM-NEXT:   }
# MULTIPLE-LLVM-NEXT:   Entry {
# MULTIPLE-LLVM-NEXT:     Functions: [other_end]
# MULTIPLE-LLVM-NEXT:     Size: 0x20
# MULTIPLE-LLVM-NEXT:   }
# MULTIPLE-LLVM-NEXT:   Entry {
# MULTIPLE-LLVM-NEXT:     Functions: [bar]
# MULTIPLE-LLVM-NEXT:     Size: 0x30
# MULTIPLE-LLVM-NEXT:   }
# MULTIPLE-LLVM-NEXT: ]

## Check that we do not consider symbols that are not function symbols, even though
## a relocation references them. 

# RUN: yaml2obj --docnum=9 %s -o %t14
# RUN: llvm-readelf --stack-sizes %t14 2> %t14-gnu.err | FileCheck %s --check-prefix=NONFUNCTIONSYM-GNU
# RUN: FileCheck %s < %t14-gnu.err --check-prefix=NONFUNCTIONSYM-ERR -DFILE=%t14
# RUN: llvm-readobj --stack-sizes %t14 2> %t14-llvm.err | FileCheck %s --check-prefix=NONFUNCTIONSYM-LLVM
# RUN: FileCheck %s < %t14-llvm.err --check-prefix=NONFUNCTIONSYM-ERR -DFILE=%t14

# NONFUNCTIONSYM-GNU:     Stack Sizes:
# NONFUNCTIONSYM-GNU:     0 ?

# NONFUNCTIONSYM-LLVM:      StackSizes [
# NONFUNCTIONSYM-LLVM-NEXT:   Entry {
# NONFUNCTIONSYM-LLVM-NEXT:     Functions: [?]
# NONFUNCTIONSYM-LLVM-NEXT:     Size: 0x0
# NONFUNCTIONSYM-LLVM-NEXT:   }
# NONFUNCTIONSYM-LLVM-NEXT: ]

# NONFUNCTIONSYM-ERR: warning: '[[FILE]]': could not identify function symbol for stack size entry in SHT_PROGBITS section with index 2

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
    Size: 16
  - Name: .stack_sizes
    Type: SHT_PROGBITS
    Entries:
      - Size: 0
    Link: .text
  - Name: .rela.stack_sizes
    Type: SHT_RELA
    Info: .stack_sizes
    Relocations:
      - Offset: 0
        Symbol: foo
        Type:   R_X86_64_64
Symbols:
  - Name:    foo
    Section: .text
    Type:    STT_OBJECT
    Binding: STB_GLOBAL

## Check that we report a warning when we find an unsupported relocation
## in the section that contains the stack size entries' relocations.

# RUN: yaml2obj --docnum=10 %s -o %t15
# RUN: llvm-readelf --stack-sizes %t15 2>&1 | FileCheck %s --check-prefix=UNSUPPRELOC-GNU -DFILE=%t15
# RUN: llvm-readobj --stack-sizes %t15 2>&1 | FileCheck %s --check-prefix=UNSUPPRELOC-LLVM -DFILE=%t15

# UNSUPPRELOC-GNU:      Stack Sizes:
# UNSUPPRELOC-GNU-NEXT:   Size     Functions
# UNSUPPRELOC-GNU-NEXT: warning: '[[FILE]]': SHT_RELA section with index 3 contains an unsupported relocation with index 0: R_X86_64_RELATIVE
# UNSUPPRELOC-GNU-NEXT:      0     foo
# UNSUPPRELOC-GNU-NEXT: warning: '[[FILE]]': SHT_RELA section with index 3 contains an unsupported relocation with index 2: R_X86_64_RELATIVE

# UNSUPPRELOC-LLVM:      StackSizes [
# UNSUPPRELOC-LLVM-NEXT: warning: '[[FILE]]': SHT_RELA section with index 3 contains an unsupported relocation with index 0: R_X86_64_RELATIVE
# UNSUPPRELOC-LLVM-NEXT:   Entry {
# UNSUPPRELOC-LLVM-NEXT:     Functions: [foo]
# UNSUPPRELOC-LLVM-NEXT:     Size: 0x0
# UNSUPPRELOC-LLVM-NEXT:   }
# UNSUPPRELOC-LLVM-NEXT: warning: '[[FILE]]': SHT_RELA section with index 3 contains an unsupported relocation with index 2: R_X86_64_RELATIVE
# UNSUPPRELOC-LLVM-NEXT: ]

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
    Size: 8
  - Name: .stack_sizes
    Type: SHT_PROGBITS
    Link: .text
    Entries:
      - Size: 0
  - Name: .rela.stack_sizes
    Type: SHT_RELA
    Info: .stack_sizes
    Relocations:
      - Offset: 0
        Symbol: foo
        Type:   R_X86_64_RELATIVE
      - Offset: 0
        Symbol: foo
        Type:   R_X86_64_64
      - Offset: 0
        Symbol: foo
        Type:   R_X86_64_RELATIVE
Symbols:
  - Name:    foo
    Section: .text
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that warning messages in archives do not impact other members. In the following
## test, the first archive member generates a warning and we make sure all the information
## is still dumped.

# RUN: llvm-ar rc %t2.a %t04 %t01
# RUN: llvm-readelf --stack-sizes %t2.a 2>&1 | FileCheck %s --check-prefix=ARCHIVEWARN-GNU \
# RUN:   -DFILE=%t2.a --strict-whitespace --match-full-lines
# RUN: llvm-readobj --stack-sizes %t2.a 2>&1 | FileCheck %s --check-prefix=ARCHIVEWARN-LLVM -DFILE=%t2.a

#      ARCHIVEWARN-GNU:File: [[FILE]]({{.*04}})
#      ARCHIVEWARN-GNU:Stack Sizes:
# ARCHIVEWARN-GNU-NEXT:         Size     Functions
#      ARCHIVEWARN-GNU:{{.*}}: warning: '{{.*04}}': relocation symbol '_Z3foof' is not in the expected section
#      ARCHIVEWARN-GNU:            8     _Z3foof
#      ARCHIVEWARN-GNU:File: [[FILE]]({{.*01}})
#      ARCHIVEWARN-GNU:Stack Sizes:
# ARCHIVEWARN-GNU-NEXT:         Size     Functions
# ARCHIVEWARN-GNU-NEXT:           16     referenced_by_symbol_foo
# ARCHIVEWARN-GNU-NEXT:           32     referenced_via_section_bar
# ARCHIVEWARN-GNU-NEXT:            8     separate_text_section_baz
#  ARCHIVEWARN-GNU-NOT:{{.}}


# ARCHIVEWARN-LLVM:      File: [[FILE]]({{.*04}})
# ARCHIVEWARN-LLVM:      StackSizes [
# ARCHIVEWARN-LLVM:      warning: '{{.*04}}': relocation symbol '_Z3foof' is not in the expected section
# ARCHIVEWARN-LLVM-NEXT:   Entry {
# ARCHIVEWARN-LLVM-NEXT:     Functions: [_Z3foof]
# ARCHIVEWARN-LLVM-NEXT:     Size: 0x8
# ARCHIVEWARN-LLVM-NEXT:   }
# ARCHIVEWARN-LLVM-NEXT: ]
# ARCHIVEWARN-LLVM:      File: [[FILE]]({{.*01}})
# ARCHIVEWARN-LLVM:      StackSizes [
# ARCHIVEWARN-LLVM-NEXT:   Entry {
# ARCHIVEWARN-LLVM-NEXT:     Functions: [referenced_by_symbol_foo]
# ARCHIVEWARN-LLVM-NEXT:     Size: 0x10
# ARCHIVEWARN-LLVM-NEXT:   }
# ARCHIVEWARN-LLVM-NEXT:   Entry {
# ARCHIVEWARN-LLVM-NEXT:     Functions: [referenced_via_section_bar]
# ARCHIVEWARN-LLVM-NEXT:     Size: 0x20
# ARCHIVEWARN-LLVM-NEXT:   }
# ARCHIVEWARN-LLVM-NEXT:   Entry {
# ARCHIVEWARN-LLVM-NEXT:     Functions: [separate_text_section_baz]
# ARCHIVEWARN-LLVM-NEXT:     Size: 0x8
# ARCHIVEWARN-LLVM-NEXT:   }
# ARCHIVEWARN-LLVM-NEXT: ]

## Check that we demangle function names when requested.

# RUN: yaml2obj --docnum=11 %s -o %t16
# RUN: llvm-readelf --stack-sizes --demangle %t16 | FileCheck %s --check-prefix=DEMANGLE-GNU
# RUN: llvm-readobj --stack-sizes --demangle %t16 | FileCheck %s --check-prefix=DEMANGLE-LLVM

# DEMANGLE-GNU:  16 foo(float)
# DEMANGLE-LLVM: Functions: [foo(float)]

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Entries:
      - Address: 0x10
        Size:    0x10
    Link:    .text
Symbols:
  - Name:    _Z3foof
    Section: .text
    Value:   0x10
    Type:    STT_FUNC
    Binding: STB_GLOBAL

## Check that we report a warning when we are unable to resolve a relocation for a given ELF architecture.
## Here we have a 64-bit relocation used in a 32-bit object.

# RUN: yaml2obj --docnum=12 %s -o %t17
# RUN: llvm-readelf --stack-sizes %t17 2>&1 | FileCheck %s -DFILE=%t17 --check-prefix=UNSUPPRELOC2
# RUN: llvm-readobj --stack-sizes %t17 2>&1 | FileCheck %s -DFILE=%t17 --check-prefix=UNSUPPRELOC2

# UNSUPPRELOC2: warning: '[[FILE]]': SHT_RELA section with index 2 contains an unsupported relocation with index 0: R_X86_64_64

--- !ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2MSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .stack_sizes
    Type: SHT_PROGBITS
    Content: "00"
  - Name: .rela.stack_sizes
    Type: SHT_RELA
    Info: .stack_sizes
    Relocations:
      - Offset: 0
        Type:   R_X86_64_64

## Check we report a warning when dumping stack sizes if the relocated section
## identified by the sh_info field is invalid. Here the sh_info value is larger than
## the number of sections.

# RUN: yaml2obj --docnum=13 %s -o %t18
# RUN: llvm-readelf --stack-sizes %t18 2>&1 | \
# RUN:   FileCheck %s --implicit-check-not="warning:" -DFILE=%t18 --check-prefix=INVALID-TARGET
# RUN: llvm-readobj --stack-sizes %t18 2>&1 | \
# RUN:   FileCheck %s --implicit-check-not="warning:" -DFILE=%t18 --check-prefix=INVALID-TARGET

# INVALID-TARGET: warning: '[[FILE]]': unable to get stack size map section(s): SHT_RELA section with index 1: failed to get a relocated section: invalid section index: 255
# INVALID-TARGET: SHT_RELA section with index 2: failed to get a relocated section: invalid section index: 255

--- !ELF
FileHeader:
  Class: ELFCLASS32
  Data:  ELFDATA2MSB
  Type:  ET_REL
Sections:
  - Name: .rela.stack_sizes
    Type: SHT_RELA
    Link: 0
    Info: 0xFF
    Relocations: []
  - Name: .rela.stack_sizes (1)
    Type: SHT_RELA
    Link: 0
    Info: 0xFF
    Relocations: []
    
## Check that that we see multiple symbols output in cases when multiple symbols
## share the same stack size entry, for example when use of ICF means two functions
## are represented by the same code.
    
# RUN: yaml2obj --docnum=14 %s -o %t19
# RUN: llvm-readelf --stack-sizes %t19 2>&1 \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE-SYMBOLS-GNU
# RUN: llvm-readobj --stack-sizes %t19 2>&1 \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE-SYMBOLS-LLVM

# MULTIPLE-SYMBOLS-GNU:         Size     Functions
# MULTIPLE-SYMBOLS-GNU:           16     foo, bar
# MULTIPLE-SYMBOLS-GNU-NOT:{{.}}

# MULTIPLE-SYMBOLS-LLVM:      StackSizes [
# MULTIPLE-SYMBOLS-LLVM-NEXT:   Entry {
# MULTIPLE-SYMBOLS-LLVM-NEXT:     Functions: [foo, bar]
# MULTIPLE-SYMBOLS-LLVM-NEXT:     Size: 0x10
# MULTIPLE-SYMBOLS-LLVM-NEXT:   }
# MULTIPLE-SYMBOLS-LLVM-NEXT: ]
# MULTIPLE-SYMBOLS-LLVM-NOT:{{.}}

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_EXEC
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC]
    Size:    16
  - Name:    .stack_sizes
    Type:    SHT_PROGBITS
    Entries:
      - Address: 0x0
        Size:    0x10
    Link:    .text
Symbols:
  - Name:    foo
    Section: .text
    Value:   0x0
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    bar
    Section: .text
    Value:   0x0
    Type:    STT_FUNC
    Binding: STB_GLOBAL
