69 lines · plain
1## Test cases when we run into the end of section while parsing a line table2## prologue.3 4# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj --defsym CASE=0 -o %t05# RUN: llvm-dwarfdump -debug-line %t0 2>&1 | FileCheck %s --check-prefixes=ALL,C06 7# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj --defsym CASE=1 -o %t18# RUN: llvm-dwarfdump -debug-line %t1 2>&1 | FileCheck %s --check-prefixes=ALL,C19 10# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj --defsym CASE=2 -o %t211# RUN: llvm-dwarfdump -debug-line %t2 2>&1 | FileCheck %s --check-prefixes=ALL,C212 13# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj --defsym CASE=3 -o %t314# RUN: llvm-dwarfdump -debug-line %t3 2>&1 | FileCheck %s --check-prefixes=ALL,OK15 16# ALL: debug_line[0x00000000]17# C0-NEXT: warning: parsing line table prologue at 0x00000000 found an invalid directory or file table description at 0x0000002718# C0-NEXT: warning: failed to parse entry content descriptors: unexpected end of data at offset 0x2719# C1-NEXT: warning: parsing line table prologue at 0x00000000 found an invalid directory or file table description at 0x0000002a20# C1-NEXT: warning: failed to parse entry content descriptors: unable to decode LEB128 at offset 0x0000002a: malformed uleb128, extends past end21# C2-NEXT: warning: parsing line table prologue at 0x00000000 found an invalid directory or file table description at 0x0000002b22# C2-NEXT: warning: failed to parse entry content descriptors: unable to decode LEB128 at offset 0x0000002b: malformed uleb128, extends past end23# ALL: include_directories[ 0] = "/tmp"24# OK: file_names[ 0]:25# OK-NEXT: name: "foo"26# OK-NEXT: dir_index: 027 28.section .debug_line,"",@progbits29.long .Lend-.Lstart # Length of Unit30.Lstart:31.short 5 # DWARF version number32.byte 8 # Address Size33.byte 0 # Segment Selector Size34.long .Lprologue_end-.Lprologue_start # Length of Prologue35.Lprologue_start:36.byte 1 # Minimum Instruction Length37.byte 1 # Maximum Operations per Instruction38.byte 1 # Default is_stmt39.byte -5 # Line Base40.byte 14 # Line Range41.byte 13 # Opcode Base42.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths43# Directory table format44.byte 1 # One element per directory entry45.byte 1 # DW_LNCT_path46.byte 0x08 # DW_FORM_string47# Directory table entries48.byte 1 # 1 directory49.asciz "/tmp"50# File table format51.if CASE >= 152.byte 2 # 2 elements per file entry53.byte 1 # DW_LNCT_path54.byte 8 # DW_FORM_string55.if CASE >= 256.byte 2 # DW_LNCT_directory_index57.if CASE >= 358.byte 11 # DW_FORM_data159# File table entries60.byte 161.asciz "foo"62.byte 063.endif64.endif65.endif66 67.Lprologue_end:68.Lend:69