## Test the different error cases in the debug line parsing and how they prevent
## or don't prevent further dumping of section contents.

## Show that a bad length stops parsing of the section.
# RUN: llvm-mc -triple x86_64-pc-linux %S/Inputs/debug_line_reserved_length.s -filetype=obj -o %t-reserved.o
# RUN: llvm-dwarfdump -debug-line %t-reserved.o 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,FIRST,FATAL,RESERVED
# RUN: llvm-dwarfdump -debug-line %t-reserved.o -verbose 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,FIRST,FATAL,RESERVED

## We only produce warnings for malformed tables after the specified unit if
## parsing can continue.
# RUN: llvm-dwarfdump -debug-line=0 %t-reserved.o 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,FIRST,NOLATER,RESERVED

## Stop looking for the specified unit, if a fatally-bad prologue is detected.
# RUN: llvm-dwarfdump -debug-line=0x4b %t-reserved.o 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,NOFIRST,NOLATER,RESERVED

## Show that non-fatal errors do not prevent parsing the rest of the section.
# RUN: llvm-mc -triple x86_64-pc-linux %S/Inputs/debug_line_malformed.s -filetype=obj -o %t-malformed.o
# RUN: llvm-dwarfdump -debug-line %t-malformed.o 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,FIRST,NONFATAL,LAST,SOME-ERR,MORE-ERR \
# RUN:       --implicit-check-not='debug_line[{{.*}}]' --implicit-check-not='warning:'
# RUN: llvm-dwarfdump -debug-line %t-malformed.o -verbose 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,FIRST,VERBOSE,NONFATAL,LAST,SOME-ERR,MORE-ERR \
# RUN:       --implicit-check-not='debug_line[{{.*}}]' --implicit-check-not=' DW_LNS' \
# RUN:       --implicit-check-not=' DW_LNE' --implicit-check-not='address +=' \
# RUN:       --implicit-check-not='warning:'

## We should still produce warnings for malformed tables after the specified unit.
# RUN: llvm-dwarfdump -debug-line=0 %t-malformed.o 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,FIRST,NOLATER,SOME-ERR --implicit-check-not='warning:'

## Don't stop looking for the later unit if non-fatal issues are found.
# RUN: llvm-dwarfdump -debug-line=0x3ed %t-malformed.o 2>&1 \
# RUN:   | FileCheck %s --check-prefixes=HEADER,LAST,SOME-ERR --implicit-check-not='debug_line[{{.*}}]' \
# RUN:       --implicit-check-not='warning:'

# HEADER:       .debug_line contents:

# FIRST:        debug_line[0x00000000]
# VERBOSE:        Address            Line   Column File   ISA Discriminator Flags
# VERBOSE-NEXT:   ------------------ ------ ------ ------ --- ------------- -------------
# VERBOSE-NEXT: DW_LNE_set_address (0x000000000badbeef)
# VERBOSE-NEXT: DW_LNE_end_sequence
# FIRST:        0x000000000badbeef {{.*}} end_sequence
# FIRST-EMPTY:
# NOFIRST-NOT:  debug_line[0x00000000]
# NOFIRST-NOT:  0x000000000badbeef {{.*}} end_sequence
# NOLATER-NOT:  debug_line[{{.*}}]
# NOLATER-NOT:  end_sequence

## For fatal issues, the following table(s) should not be dumped:
# FATAL:      debug_line[0x00000048]
# RESERVED-NOT: prologue
# RESERVED: warning: parsing line table prologue at offset 0x00000048: unsupported reserved unit length of value 0xfffffffe
# RESERVED-NOT: prologue
# RESERVED-NOT: Address
# FATAL-NOT:  debug_line

## For non-fatal issues, the table data should be dumped:

## Version 0 table.
# NONFATAL:      debug_line[0x00000048]
# NONFATAL-NEXT: Line table prologue
# NONFATAL-NEXT:    total_length: 0x00000002
# NONFATAL-NEXT:          format: DWARF32
# NONFATAL-NEXT:         version: 0
# NONFATAL-EMPTY:
# SOME-ERR-NEXT: warning: parsing line table prologue at offset 0x00000048: unsupported version 0

## Version 1 table.
# NONFATAL:      debug_line[0x0000004e]
# NONFATAL-NEXT: Line table prologue
# NONFATAL-NEXT:    total_length: 0x00000002
# NONFATAL-NEXT:          format: DWARF32
# NONFATAL-NEXT:         version: 1
# NONFATAL-EMPTY:
# SOME-ERR-NEXT: warning: parsing line table prologue at offset 0x0000004e: unsupported version 1

## Malformed directory format with no path component.
# NONFATAL:      debug_line[0x00000054]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x00000054 found an invalid directory or file table description at 0x00000073
# SOME-ERR-NEXT: warning: failed to parse entry content descriptions because no path was found
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      prologue_length: 0x00000013
# NONFATAL-NOT:  include_directories
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0x8877665544332211)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## Prologue with length shorter than parsed.
# NONFATAL:      debug_line[0x00000081]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x00000081 found an invalid directory or file table description at 0x000000b9
# SOME-ERR-NEXT: warning: file names table was not null terminated before the end of the prologue
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      file_names[  1]:
# NONFATAL-NEXT:            name: "file1"
# NONFATAL-NEXT:       dir_index: 1
# NONFATAL-NEXT:        mod_time: 0x00000002
# NONFATAL-NEXT:          length: 0x00000003
# VERBOSE:       DW_LNE_set_address (0x1122334455667788)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## Prologue with length longer than parsed.
# NONFATAL:      debug_line[0x000000c7]
# SOME-ERR-NEXT: warning: unknown data in line table prologue at offset 0x000000c7: parsing ended (at offset 0x00000101) before reaching the prologue end at offset 0x00000102
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      file_names[  2]:
# NONFATAL-NEXT:            name: "file2"
# NONFATAL-NEXT:       dir_index: 1
# NONFATAL-NEXT:        mod_time: 0x00000002
# NONFATAL-NEXT:          length: 0x00000003
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0x1111222233334444)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## Extended opcode with incorrect length versus expected.
# NONFATAL:      debug_line[0x00000110]
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      prologue_length: 0x00000030
# VERBOSE:       DW_LNE_set_address (0x00000000abbadaba)
# VERBOSE-NEXT:  DW_LNE_end_sequence
# MORE-ERR:      warning: unexpected line op length at offset 0x00000157 expected 0x02 found 0x01
# VERBOSE:       DW_LNE_set_discriminator (10)
# MORE-ERR:      warning: unexpected line op length at offset 0x0000015b expected 0x01 found 0x02
# VERBOSE:       DW_LNS_set_prologue_end
# VERBOSE-NEXT:  DW_LNE_set_address (0x00000000babb1e45)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## No end of sequence.
# NONFATAL:      debug_line[0x0000016b]
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      prologue_length: 0x00000030
# VERBOSE:       DW_LNE_set_address (0x00000000deadfade)
# VERBOSE-NEXT:  DW_LNS_copy
# MORE-ERR:      warning: last sequence in debug line table at offset 0x0000016b is not terminated

## Very short prologue length for V5 (ends during parameters).
# NONFATAL:      debug_line[0x000001b1]
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      standard_opcode_lengths[DW_LNS_set_prologue_end] = 1
# NONFATAL-NEXT: standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
# NONFATAL-NEXT: standard_opcode_lengths[DW_LNS_set_isa] = 0
# NONFATAL-EMPTY:
# SOME-ERR-NEXT: warning: parsing line table prologue at offset 0x000001b1: unexpected end of data at offset 0x1cd while reading [0x1cd, 0x1ce)

## V5 prologue ends during file table.
# NONFATAL-NEXT: debug_line[0x000001db]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x000001db found an invalid directory or file table description at 0x00000206
# SOME-ERR-NEXT: warning: failed to parse entry content descriptors: unable to decode LEB128 at offset 0x00000206: malformed uleb128, extends past end
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      include_directories[  0] = "/tmp"
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0x00000ab4acadab4a)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## V5 prologue ends during directory table.
# NONFATAL:      debug_line[0x00000214]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x00000214 found an invalid directory or file table description at 0x00000236
# SOME-ERR-NEXT: warning: failed to parse directory entry because extracting the form value failed
# NONFATAL-NEXT: Line table prologue
# NONFATAL-NOT:  include_directories
# VERBOSE:       DW_LNE_set_address (0x4444333322221111)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## V5 invalid MD5 hash form when there is still data to be read.
# NONFATAL:      debug_line[0x00000244]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x00000244 found an invalid directory or file table description at 0x00000277
# SOME-ERR-NEXT: warning: failed to parse file entry because extracting the form value failed
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      include_directories[  0] = "/tmp"
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0x1234123412341234)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## V5 prologue ends while reading an MD5 hash
# NONFATAL:      debug_line[0x00000287]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x00000287 found an invalid directory or file table description at 0x000002b2
# SOME-ERR-NEXT: warning: failed to parse entry content descriptors: unable to decode LEB128 at offset 0x000002b2: malformed uleb128, extends past end
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      include_directories[  0] = "/tmp"
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0x4321432143214321)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## V5 invalid directory content description has unsupported form.
# NONFATAL:      debug_line[0x000002c0]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x000002c0 found an invalid directory or file table description at 0x000002e9
# SOME-ERR-NEXT: warning: failed to parse directory entry because skipping the form value failed
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      include_directories[  0] = "/foo"
# NONFATAL-NOT:  include_directories
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0xaaaabbbbccccdddd)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## Opcode base field of value zero.
# NONFATAL:      debug_line[0x00000306]
# SOME-ERR-NEXT: warning: parsing line table prologue at offset 0x00000306 found opcode base of 0. Assuming no standard opcodes
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      include_directories[  1] = "dir1"
# NONFATAL-NEXT: file_names[  1]:
# NONFATAL-NEXT:            name: "file1"
# NONFATAL-NEXT:       dir_index: 1
# NONFATAL-NEXT:        mod_time: 0x00000002
# NONFATAL-NEXT:          length: 0x00000003
# VERBOSE:       DW_LNE_set_address (0xffffeeeeddddcccc)
# VERBOSE-NEXT:  address += 1, line += 0
# VERBOSE:       DW_LNE_end_sequence

## V4 table with unterminated include directory table.
# NONFATAL:      debug_line[0x00000335]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x00000335 found an invalid directory or file table description at 0x00000356
# SOME-ERR-NEXT: warning: include directories table was not null terminated before the end of the prologue
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      include_directories[  1] = "dir1"
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0xabcdef0123456789)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## V4 table with unterminated file name table.
# NONFATAL:      debug_line[0x00000364]
# SOME-ERR-NEXT: warning: parsing line table prologue at 0x00000364 found an invalid directory or file table description at 0x0000038f
# SOME-ERR-NEXT: warning: file names table was not null terminated before the end of the prologue
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      file_names[  1]:
# NONFATAL-NEXT:            name: "foo.c"
# NONFATAL-NEXT:       dir_index: 1
# NONFATAL-NEXT:        mod_time: 0x00000002
# NONFATAL-NEXT:          length: 0x00000003
# NONFATAL-NOT:  file_names
# VERBOSE:       DW_LNE_set_address (0xababcdcdefef0909)
# VERBOSE-NEXT:  DW_LNE_end_sequence

## Table with extended opcode that overruns table end.
# NONFATAL:      debug_line[0x0000039d]
# NONFATAL-NEXT: Line table prologue
# NONFATAL:      Address
# NONFATAL-NEXT: ------------------
# VERBOSE-NEXT:  DW_LNE_set_address (0x00000000feedfeed)
# VERBOSE-NEXT:  DW_LNS_copy
# NONFATAL-NEXT: 0x00000000feedfeed
# VERBOSE-NEXT:  DW_LNE_set_address (<parsing error> 00 f0 01 f0 f0 00 01)
# MORE-ERR-NEXT: warning: unexpected end of data at offset 0x3ed while reading [0x3e6, 0x3ee)
# MORE-ERR-NEXT: warning: last sequence in debug line table at offset 0x0000039d is not terminated

# LAST:          debug_line[0x000003ed]
# VERBOSE:       DW_LNE_set_address (0x00000000cafebabe)
# VERBOSE-NEXT:  DW_LNE_end_sequence
