# Check that debug info line number pointing beyond the end of the file
# doesn't cause a segmentation fault in llvm-objdump.

# To rebuild the input: clang -g debug-info-fileinfo.S -o debug-info-fileinfo.exe -nostdlib

# RUN: llvm-objdump -S %p/Inputs/debug-info-fileinfo.exe.elf-x86_64 | FileCheck %s

# CHECK: Disassembly of section .text:
# CHECK: _start
# CHECK-NEXT:   400078:       c3      retq
# CHECK: foo
# CHECK-NEXT:   400079:       90      nop
# CHECK-NEXT:   40007a:       90      nop
# CHECK-NEXT:   40007b:       c3      retq

.text

.global _start; .type _start, STT_FUNC; _start:
    ret

.global foo; .type foo, STT_FUNC; foo:
    # foo
    # bar
    # baz
    nop
    nop
    ret
