Compiler projects using llvm
## Check that the --debug-vars option works for simple register locations, when
## using DWARF5 debug info, with multiple functions in one section.

## Generated with this compile command, with the source code in Inputs/debug.c:
## clang --target=arm--none-eabi -march=armv7-a -c debug.c -O1 -gdwarf-3 -S -o -

# RUN: llvm-mc -triple armv8a--none-eabi < %s -filetype=obj --dwarf-version=5 | \
# RUN:     llvm-objdump - -d --debug-vars --no-show-raw-insn | \
# RUN:     FileCheck %s

# CHECK: Disassembly of section .text:
# CHECK-EMPTY:
# CHECK-NEXT: 00000000 <foo>:
# CHECK-NEXT:                                                                   ┠─ a = R0
# CHECK-NEXT:                                                                   ┃ ┠─ b = R1
# CHECK-NEXT:                                                                   ┃ ┃ ┠─ c = R2
# CHECK-NEXT:                                                                   ┃ ┃ ┃ ┌─ x = R0
# CHECK-NEXT:        0:       add     r0, r1, r0                                ┻ ┃ ┃ ╈
# CHECK-NEXT:                                                                   ┌─ y = R0
# CHECK-NEXT:        4:       add     r0, r0, r2                                ╈ ┃ ┃ ┻
# CHECK-NEXT:        8:       bx      lr                                        ┻ ┻ ┻
# CHECK-EMPTY:
# CHECK-NEXT: 0000000c <bar>:
# CHECK-NEXT:                                                                   ┠─ a = R0
# CHECK-NEXT:        c:       add     r0, r0, #1                                ┃
# CHECK-NEXT:       10:       bx      lr                                        ┻

	.text
	.syntax unified
	.eabi_attribute	67, "2.09"
	.eabi_attribute	6, 10
	.eabi_attribute	7, 65
	.eabi_attribute	8, 1
	.eabi_attribute	9, 2
	.fpu	neon
	.eabi_attribute	34, 0
	.eabi_attribute	17, 1
	.eabi_attribute	20, 1
	.eabi_attribute	21, 1
	.eabi_attribute	23, 3
	.eabi_attribute	24, 1
	.eabi_attribute	25, 1
	.eabi_attribute	38, 1
	.eabi_attribute	18, 4
	.eabi_attribute	26, 2
	.eabi_attribute	14, 0
	.file	"debug.c"
	.globl	foo
	.p2align	2
	.type	foo,%function
	.code	32
foo:
.Lfunc_begin0:
	.file	0 "/work/scratch" "/work/llvm/src/llvm/test/tools/llvm-objdump/ARM/Inputs/debug.c" md5 0x07374f01ab24ec7c07db73bc13bd778e
	.file	1 "/work" "llvm/src/llvm/test/tools/llvm-objdump/ARM/Inputs/debug.c" md5 0x07374f01ab24ec7c07db73bc13bd778e
	.loc	1 1 0
	.fnstart
	.cfi_sections .debug_frame
	.cfi_startproc
	.loc	1 2 13 prologue_end
	add	r0, r1, r0
.Ltmp0:
	.loc	1 3 13
	add	r0, r0, r2
.Ltmp1:
	.loc	1 4 3
	bx	lr
.Ltmp2:
.Lfunc_end0:
	.size	foo, .Lfunc_end0-foo
	.cfi_endproc
	.cantunwind
	.fnend

	.globl	bar
	.p2align	2
	.type	bar,%function
	.code	32
bar:
.Lfunc_begin1:
	.loc	1 7 0
	.fnstart
	.cfi_startproc
	.loc	1 8 4 prologue_end
	add	r0, r0, #1
.Ltmp3:
	.loc	1 9 3
	bx	lr
.Ltmp4:
.Lfunc_end1:
	.size	bar, .Lfunc_end1-bar
	.cfi_endproc
	.cantunwind
	.fnend

	.section	.debug_str_offsets,"",%progbits
	.long	48
	.short	5
	.short	0
.Lstr_offsets_base0:
	.section	.debug_str,"MS",%progbits,1
.Linfo_string0:
	.asciz	"clang version 10.0.0 (git@github.com:llvm/llvm-project.git e73f78acd34360f7450b81167d9dc858ccddc262)"
.Linfo_string1:
	.asciz	"/work/llvm/src/llvm/test/tools/llvm-objdump/ARM/Inputs/debug.c"
.Linfo_string2:
	.asciz	"/work/scratch"
.Linfo_string3:
	.asciz	"foo"
.Linfo_string4:
	.asciz	"int"
.Linfo_string5:
	.asciz	"bar"
.Linfo_string6:
	.asciz	"a"
.Linfo_string7:
	.asciz	"b"
.Linfo_string8:
	.asciz	"c"
.Linfo_string9:
	.asciz	"x"
.Linfo_string10:
	.asciz	"y"
	.section	.debug_str_offsets,"",%progbits
	.long	.Linfo_string0
	.long	.Linfo_string1
	.long	.Linfo_string2
	.long	.Linfo_string3
	.long	.Linfo_string4
	.long	.Linfo_string5
	.long	.Linfo_string6
	.long	.Linfo_string7
	.long	.Linfo_string8
	.long	.Linfo_string9
	.long	.Linfo_string10
	.section	.debug_loclists,"",%progbits
	.long	.Ldebug_loclist_table_end0-.Ldebug_loclist_table_start0
.Ldebug_loclist_table_start0:
	.short	5
	.byte	4
	.byte	0
	.long	3
.Lloclists_table_base0:
	.long	.Ldebug_loc0-.Lloclists_table_base0
	.long	.Ldebug_loc1-.Lloclists_table_base0
	.long	.Ldebug_loc2-.Lloclists_table_base0
.Ldebug_loc0:
	.byte	4
	.uleb128 .Lfunc_begin0-.Lfunc_begin0
	.uleb128 .Ltmp0-.Lfunc_begin0
	.byte	1
	.byte	80
	.byte	0
.Ldebug_loc1:
	.byte	4
	.uleb128 .Ltmp0-.Lfunc_begin0
	.uleb128 .Ltmp1-.Lfunc_begin0
	.byte	1
	.byte	80
	.byte	0
.Ldebug_loc2:
	.byte	4
	.uleb128 .Ltmp1-.Lfunc_begin0
	.uleb128 .Lfunc_end0-.Lfunc_begin0
	.byte	1
	.byte	80
	.byte	0
.Ldebug_loclist_table_end0:
	.section	.debug_abbrev,"",%progbits
	.byte	1
	.byte	17
	.byte	1
	.byte	37
	.byte	37
	.byte	19
	.byte	5
	.byte	3
	.byte	37
	.byte	114
	.byte	23
	.byte	16
	.byte	23
	.byte	27
	.byte	37
	.byte	17
	.byte	27
	.byte	18
	.byte	6
	.byte	115
	.byte	23
	.ascii	"\214\001"
	.byte	23
	.byte	0
	.byte	0
	.byte	2
	.byte	46
	.byte	1
	.byte	17
	.byte	27
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.byte	122
	.byte	25
	.byte	3
	.byte	37
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	39
	.byte	25
	.byte	73
	.byte	19
	.byte	63
	.byte	25
	.byte	0
	.byte	0
	.byte	3
	.byte	5
	.byte	0
	.byte	2
	.byte	34
	.byte	3
	.byte	37
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	4
	.byte	5
	.byte	0
	.byte	2
	.byte	24
	.byte	3
	.byte	37
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	5
	.byte	52
	.byte	0
	.byte	2
	.byte	34
	.byte	3
	.byte	37
	.byte	58
	.byte	11
	.byte	59
	.byte	11
	.byte	73
	.byte	19
	.byte	0
	.byte	0
	.byte	6
	.byte	36
	.byte	0
	.byte	3
	.byte	37
	.byte	62
	.byte	11
	.byte	11
	.byte	11
	.byte	0
	.byte	0
	.byte	0
	.section	.debug_info,"",%progbits
.Lcu_begin0:
	.long	.Ldebug_info_end0-.Ldebug_info_start0
.Ldebug_info_start0:
	.short	5
	.byte	1
	.byte	4
	.long	.debug_abbrev
	.byte	1
	.byte	0
	.short	12
	.byte	1
	.long	.Lstr_offsets_base0
	.long	.Lline_table_start0
	.byte	2
	.byte	0
	.long	.Lfunc_end1-.Lfunc_begin0
	.long	.Laddr_table_base0
	.long	.Lloclists_table_base0
	.byte	2
	.byte	0
	.long	.Lfunc_end0-.Lfunc_begin0
	.byte	1
	.byte	91

	.byte	3
	.byte	1
	.byte	1

	.long	128

	.byte	3
	.byte	0
	.byte	6
	.byte	1
	.byte	1
	.long	128
	.byte	4
	.byte	1
	.byte	81
	.byte	7
	.byte	1
	.byte	1
	.long	128
	.byte	4
	.byte	1
	.byte	82
	.byte	8
	.byte	1
	.byte	1
	.long	128
	.byte	5
	.byte	1
	.byte	9
	.byte	1
	.byte	2
	.long	128
	.byte	5
	.byte	2
	.byte	10
	.byte	1
	.byte	3
	.long	128
	.byte	0
	.byte	2
	.byte	1
	.long	.Lfunc_end1-.Lfunc_begin1
	.byte	1
	.byte	91

	.byte	5
	.byte	1
	.byte	7

	.long	128

	.byte	4
	.byte	1
	.byte	80
	.byte	6
	.byte	1
	.byte	7
	.long	128
	.byte	0
	.byte	6
	.byte	4
	.byte	5
	.byte	4
	.byte	0
.Ldebug_info_end0:
	.section	.debug_addr,"",%progbits
	.long	.Ldebug_addr_end0-.Ldebug_addr_start0
.Ldebug_addr_start0:
	.short	5
	.byte	4
	.byte	0
.Laddr_table_base0:
	.long	.Lfunc_begin0
	.long	.Lfunc_begin1
.Ldebug_addr_end0:
	.ident	"clang version 10.0.0 (git@github.com:llvm/llvm-project.git e73f78acd34360f7450b81167d9dc858ccddc262)"
	.section	".note.GNU-stack","",%progbits
	.addrsig
	.eabi_attribute	30, 1
	.section	.debug_line,"",%progbits
.Lline_table_start0: