1## Show that the DW_LNE_end_sequence opcode resets the line state 2## properly and the rows are printed correctly. 3 4# RUN: llvm-mc -filetype obj -triple x86_64 %s -o %t.o 5# RUN: llvm-dwarfdump --debug-line %t.o | FileCheck %s --check-prefixes=HEADER,ROWS 6# RUN: llvm-dwarfdump --debug-line %t.o --verbose | FileCheck %s --check-prefix=ROWS 7 8# HEADER: Address Line Column File ISA Discriminator OpIndex Flags 9# HEADER-NEXT: ------------------ ------ ------ ------ --- ------------- ------- ------------- 10# ROWS: 0x0000000012345678 1 0 1 0 1 0 is_stmt basic_block prologue_end epilogue_begin end_sequence 11# ROWS: 0x0000000000000001 2 0 1 0 0 0 is_stmt 12# ROWS: 0x0000000000000001 2 0 1 0 0 0 is_stmt end_sequence 13 14.section .debug_line,"",@progbits 15.Line_table_start0: 16 .long .Line_table_end0-.Line_table_start0-4 # Length of Unit 17 .short 5 # DWARF version number 18 .byte 8 # Address Size 19 .byte 0 # Segment Selector Size 20 .long .Line_table_header_end0-.Line_table_params0 # Length of Prologue 21.Line_table_params0: 22 .byte 1 # Minimum Instruction Length 23 .byte 1 # Maximum Operations per Instruction 24 .byte 1 # Default is_stmt 25 .byte -5 # Line Base 26 .byte 14 # Line Range 27 .byte 13 # Opcode Base 28 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths 29 # Directory table format 30 .byte 1 # One element per directory entry 31 .byte 1 # DW_LNCT_path 32 .byte 0x08 # DW_FORM_string 33 # Directory table entries 34 .byte 1 # 1 directory 35 .asciz "/tmp" 36 # File table format 37 .byte 2 # 2 elements per file entry 38 .byte 1 # DW_LNCT_path 39 .byte 0x08 # DW_FORM_string 40 .byte 2 # DW_LNCT_directory_index 41 .byte 0x0b # DW_FORM_data1 42 # File table entries 43 .byte 1 # 1 file 44 .asciz "a.c" 45 .byte 0 46.Line_table_header_end0: 47 .byte 0,9,2 # DW_LNE_set_address 48 .quad 0x12345678 49 .byte 7 # DW_LNS_set_basic_block 50 .byte 10 # DW_LNS_set_prologue_end 51 .byte 11 # DW_LNS_set_epilogue_begin 52 .byte 0,2,4,1 # DW_LNE_set_discriminator 1 53 .byte 0,1,1 # DW_LNE_end_sequence 54 .byte 33 # address += 1, line += 1 55 .byte 0,1,1 # DW_LNE_end_sequence 56.Line_table_end0: 57