68 lines · plain
1## An object with many files and directories in a single debug_line contribution2## meant to test the handling of directory_count and file_name_count fields.3 4# RUN: llvm-mc -triple x86_64-pc-linux -filetype=obj %s -o %t5# RUN: llvm-dwarfdump -debug-line %t | FileCheck %s6 7# CHECK: include_directories[ 0] = "/d000"8# CHECK: include_directories[299] = "/d299"9# CHECK: file_names[ 0]:10# CHECK-NEXT: name: "000.c"11# CHECK-NEXT: dir_index: 012# CHECK: file_names[299]:13# CHECK-NEXT: name: "299.c"14# CHECK-NEXT: dir_index: 29915 16.section .debug_line,"",@progbits17.long .Lunit_end0-.Lunit_start0 # Length of Unit18.Lunit_start0:19.short 5 # DWARF version number20.byte 8 # Address Size21.byte 0 # Segment Selector Size22.long .Lunit_header_end0 - .Lunit_params0 # Length of Prologue (invalid)23.Lunit_params0:24.byte 1 # Minimum Instruction Length25.byte 1 # Maximum Operations per Instruction26.byte 1 # Default is_stmt27.byte -5 # Line Base28.byte 14 # Line Range29.byte 13 # Opcode Base30.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths31 32# Directory table format33.byte 1 # One element per directory entry34.byte 1 # DW_LNCT_path35.byte 0x08 # DW_FORM_string36 37# Directory table entries38.uleb128 300 # 300 directories39.irpc a,01240.irpc b,012345678941.irpc c,012345678942.byte '/', 'd', '0'+\a, '0'+\b, '0'+\c, 043.endr44.endr45.endr46 47# File table format48.byte 2 # 2 elements per file entry49.byte 1 # DW_LNCT_path50.byte 0x08 # DW_FORM_string51.byte 2 # DW_LNCT_directory_index52.byte 0x05 # DW_FORM_data253 54# File table entries55.uleb128 300 # 300 files56.irpc a,01257.irpc b,012345678958.irpc c,012345678959.byte '0'+\a, '0'+\b, '0'+\c, '.', 'c', 0 # File name60.word \a*100+\b*10+\c # Dir index61.endr62.endr63.endr64 65.Lunit_header_end0:66.byte 0, 1, 1 # DW_LNE_end_sequence67.Lunit_end0:68