1# Test that parsing of line tables works reasonably. In this case the debug info
2# does not have enough information for our heuristics to determine the path
3# style, so we will just treat them as native host paths.
4
5# REQUIRES: lld, x86
6
7# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj > %t.o
8# RUN: ld.lld %t.o -o %t -z separate-code
9# RUN: %lldb %t -s %S/Inputs/dir-separator-no-comp-dir-relative-name.lldbinit -o exit | FileCheck %s
10
11# CHECK-LABEL: image dump line-table a.c
12# CHECK: Line table for foo{{.}}a.c
13# CHECK-NEXT: 0x0000000000201000: foo{{.}}a.c:1
14# CHECK-NEXT: 0x0000000000201001: foo{{.}}b.c:1
15# CHECK-NEXT: 0x0000000000201002: foo{{.}}b.c:1
16# CHECK-EMPTY:
17
18# CHECK-LABEL: breakpoint set -f a.c -l 1
19# CHECK: Breakpoint 1: {{.*}}`_start,
20
21# CHECK-LABEL: breakpoint set -f foo/b.c -l 1
22# CHECK: Breakpoint 2: {{.*}}`_start + 1,
23
24	.text
25	.globl	_start
26_start:
27	.file	1 "foo/a.c"
28	.loc	1 1 0
29        nop
30	.file	2 "foo/b.c"
31	.loc	2 1 0
32        nop
33
34	.section	.debug_str,"MS",@progbits,1
35.Linfo_string1:
36	.asciz	"foo/a.c"
37	.section	.debug_abbrev,"",@progbits
38	.byte	1                       # Abbreviation Code
39	.byte	17                      # DW_TAG_compile_unit
40	.byte	0                       # DW_CHILDREN_no
41	.byte	19                      # DW_AT_language
42	.byte	5                       # DW_FORM_data2
43	.byte	3                       # DW_AT_name
44	.byte	14                      # DW_FORM_strp
45	.byte	16                      # DW_AT_stmt_list
46	.byte	23                      # DW_FORM_sec_offset
47	.byte	0                       # EOM(1)
48	.byte	0                       # EOM(2)
49	.byte	0                       # EOM(3)
50	.section	.debug_info,"",@progbits
51.Lcu_begin0:
52	.long	.Lcu_end0-.Lcu_start0   # Length of Unit
53.Lcu_start0:
54	.short	4                       # DWARF version number
55	.long	.debug_abbrev           # Offset Into Abbrev. Section
56	.byte	8                       # Address Size (in bytes)
57	.byte	1                       # Abbrev [1] 0xb:0x1f DW_TAG_compile_unit
58	.short	12                      # DW_AT_language
59	.long	.Linfo_string1          # DW_AT_name
60	.long	.Lline_table_start0     # DW_AT_stmt_list
61.Lcu_end0:
62	.section	.debug_line,"",@progbits
63.Lline_table_start0:
64