## Check that the --debug-vars option works for simple register locations, when
## using DWARF4 debug info, with multiple functions in one section. Check that
## the live-range lines are rendered correctly when using the --no-show-raw-insn,
## --line-numbers and --source options. These do not affect the DWARF parsing
## used by --debug-vars, but do add extra lines or columns to the output, so we
## test to make sure the live ranges are still displayed correctly.

## 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-4 -S -o -

# RUN: llvm-mc -triple armv8a--none-eabi < %s -filetype=obj -o %t.o

# RUN: llvm-objdump %t.o -d --debug-vars | \
# RUN:     FileCheck %s --check-prefix=RAW --strict-whitespace

## Check that passing the default value for --debug-vars-indent (52) makes no
## change to the output.
# RUN: llvm-objdump %t.o -d --debug-vars --debug-vars-indent=52 | \
# RUN:     FileCheck %s --check-prefix=RAW --strict-whitespace

# RUN: llvm-objdump %t.o -d --debug-vars --debug-vars-indent=30 | \
# RUN:     FileCheck %s --check-prefix=INDENT --strict-whitespace

# RUN: llvm-objdump %t.o -d --debug-vars --no-show-raw-insn | \
# RUN:     FileCheck %s --check-prefix=NO-RAW --strict-whitespace

# RUN: llvm-objdump %t.o -d --debug-vars --no-show-raw-insn --line-numbers | \
# RUN:     FileCheck %s --check-prefix=LINE-NUMS --strict-whitespace

# RUN: mkdir -p %t/a
# RUN: cp %p/Inputs/debug.c %t/a/debug.c
# RUN: sed -e "s,SRC_COMPDIR,%/t/a,g" %s > %t.s
# RUN: llvm-mc -triple armv8a--none-eabi < %t.s -filetype=obj | \
# RUN:     llvm-objdump - -d --debug-vars --no-show-raw-insn --source | \
# RUN:     FileCheck %s --check-prefix=SOURCE --strict-whitespace

## An optional argument to the --debug-vars= option can be used to switch
## between unicode and ascii output (with unicode being the default).
# RUN: llvm-objdump %t.o -d --debug-vars=unicode | \
# RUN:     FileCheck %s --check-prefix=RAW --strict-whitespace
# RUN: llvm-objdump %t.o -d --debug-vars=ascii | \
# RUN:     FileCheck %s --check-prefix=ASCII --strict-whitespace
# RUN: not llvm-objdump %t.o -d --debug-vars=bad_value 2>&1 | \
# RUN: FileCheck %s --check-prefix=ERROR

## Note that llvm-objdump emits tab characters in the disassembly, assuming an
## 8-byte tab stop, so these might not look aligned in a text editor.

# RAW: 00000000 <foo>:
# RAW-NEXT:                                                                             ┠─ a = R0 
# RAW-NEXT:                                                                             ┃ ┠─ b = R1 
# RAW-NEXT:                                                                             ┃ ┃ ┠─ c = R2 
# RAW-NEXT:                                                                             ┃ ┃ ┃ ┌─ x = R0 
# RAW-NEXT:        0: e0810000     	add	r0, r1, r0                                  ┻ ┃ ┃ ╈   
# RAW-NEXT:                                                                             ┌─ y = R0 
# RAW-NEXT:        4: e0800002     	add	r0, r0, r2                                  ╈ ┃ ┃ ┻   
# RAW-NEXT:        8: e12fff1e     	bx	lr                                          ┻ ┻ ┻     
# RAW-EMPTY:
# RAW-NEXT: 0000000c <bar>:
# RAW-NEXT:                                                                             ┠─ a = R0 
# RAW-NEXT:        c: e2800001     	add	r0, r0, #1                                  ┃         
# RAW-NEXT:       10: e12fff1e     	bx	lr                                          ┻         


# INDENT: 00000000 <foo>:
# INDENT-NEXT:                                                       ┠─ a = R0 
# INDENT-NEXT:                                                       ┃ ┠─ b = R1 
# INDENT-NEXT:                                                       ┃ ┃ ┠─ c = R2 
# INDENT-NEXT:                                                       ┃ ┃ ┃ ┌─ x = R0 
# INDENT-NEXT:        0: e0810000     	add	r0, r1, r0            ┻ ┃ ┃ ╈   
# INDENT-NEXT:                                                       ┌─ y = R0 
# INDENT-NEXT:        4: e0800002     	add	r0, r0, r2            ╈ ┃ ┃ ┻   
# INDENT-NEXT:        8: e12fff1e     	bx	lr                    ┻ ┻ ┻     
# INDENT-EMPTY:
# INDENT-NEXT: 0000000c <bar>:
# INDENT-NEXT:                                                       ┠─ a = R0 
# INDENT-NEXT:        c: e2800001     	add	r0, r0, #1            ┃         
# INDENT-NEXT:       10: e12fff1e     	bx	lr                    ┻         

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

# LINE-NUMS: 00000000 <foo>:
# LINE-NUMS-NEXT: ; foo():
# LINE-NUMS-NEXT: ; SRC_COMPDIR{{[\\/]}}debug.c:2                                             ┠─ a = R0
# LINE-NUMS-NEXT:                                                                     ┃ ┠─ b = R1
# LINE-NUMS-NEXT:                                                                     ┃ ┃ ┠─ c = R2
# LINE-NUMS-NEXT:                                                                     ┃ ┃ ┃ ┌─ x = R0
# LINE-NUMS-NEXT:        0:      	add	r0, r1, r0                                  ┻ ┃ ┃ ╈
# LINE-NUMS-NEXT: ; SRC_COMPDIR{{[\\/]}}debug.c:3                                             ┌─ y = R0
# LINE-NUMS-NEXT:        4:      	add	r0, r0, r2                                  ╈ ┃ ┃ ┻
# LINE-NUMS-NEXT: ; SRC_COMPDIR{{[\\/]}}debug.c:4                                             ┃ ┃ ┃
# LINE-NUMS-NEXT:        8:      	bx	lr                                          ┻ ┻ ┻
# LINE-NUMS-EMPTY:
# LINE-NUMS-NEXT: 0000000c <bar>:
# LINE-NUMS-NEXT: ; bar():
# LINE-NUMS-NEXT: ; SRC_COMPDIR{{[\\/]}}debug.c:8                                             ┠─ a = R0
# LINE-NUMS-NEXT:        c:      	add	r0, r0, #1                                  ┃
# LINE-NUMS-NEXT: ; SRC_COMPDIR{{[\\/]}}debug.c:9                                             ┃
# LINE-NUMS-NEXT:       10:      	bx	lr                                          ┻

# SOURCE: 00000000 <foo>:
# SOURCE-NEXT: ;   int x = a + b;                                                  ┠─ a = R0
# SOURCE-NEXT:                                                                     ┃ ┠─ b = R1
# SOURCE-NEXT:                                                                     ┃ ┃ ┠─ c = R2
# SOURCE-NEXT:                                                                     ┃ ┃ ┃ ┌─ x = R0
# SOURCE-NEXT:        0:      	add	r0, r1, r0                                  ┻ ┃ ┃ ╈
# SOURCE-NEXT: ;   int y = x + c;                                                  ┌─ y = R0
# SOURCE-NEXT:        4:      	add	r0, r0, r2                                  ╈ ┃ ┃ ┻
# SOURCE-NEXT: ;   return y;                                                       ┃ ┃ ┃
# SOURCE-NEXT:        8:      	bx	lr                                          ┻ ┻ ┻
# SOURCE-EMPTY:
# SOURCE-NEXT: 0000000c <bar>:
# SOURCE-NEXT: ;   a++;                                                            ┠─ a = R0
# SOURCE-NEXT:        c:      	add	r0, r0, #1                                  ┃
# SOURCE-NEXT: ;   return a;                                                       ┃
# SOURCE-NEXT:       10:      	bx	lr                                          ┻

# ASCII: 00000000 <foo>:
# ASCII-NEXT:                                                                             |- a = R0 
# ASCII-NEXT:                                                                             | |- b = R1 
# ASCII-NEXT:                                                                             | | |- c = R2 
# ASCII-NEXT:                                                                             | | | /- x = R0 
# ASCII-NEXT:        0: e0810000     	add	r0, r1, r0                                  v | | ^   
# ASCII-NEXT:                                                                             /- y = R0 
# ASCII-NEXT:        4: e0800002     	add	r0, r0, r2                                  ^ | | v   
# ASCII-NEXT:        8: e12fff1e     	bx	lr                                          v v v     
# ASCII-EMPTY:
# ASCII-NEXT: 0000000c <bar>:
# ASCII-NEXT:                                                                             |- a = R0 
# ASCII-NEXT:        c: e2800001     	add	r0, r0, #1                                  |         
# ASCII-NEXT:       10: e12fff1e     	bx	lr                                          v         

# ERROR: error: 'bad_value' is not a valid value for '--debug-vars='

	.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	1 "" "SRC_COMPDIR/debug.c"
	.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,"MS",%progbits,1
.Linfo_string0:
	.asciz	"clang version 10.0.0 (git@github.com:llvm/llvm-project.git e73f78acd34360f7450b81167d9dc858ccddc262)"
.Linfo_string1:
	.asciz	"SRC_COMPDIR/debug.c"
.Linfo_string2:
	.asciz	""
.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_loc,"",%progbits
.Ldebug_loc0:
	.long	.Lfunc_begin0-.Lfunc_begin0
	.long	.Ltmp0-.Lfunc_begin0
	.short	1
	.byte	80
	.long	0
	.long	0
.Ldebug_loc1:
	.long	.Ltmp0-.Lfunc_begin0
	.long	.Ltmp1-.Lfunc_begin0
	.short	1
	.byte	80
	.long	0
	.long	0
.Ldebug_loc2:
	.long	.Ltmp1-.Lfunc_begin0
	.long	.Lfunc_end0-.Lfunc_begin0
	.short	1
	.byte	80
	.long	0
	.long	0
	.section	.debug_abbrev,"",%progbits
	.byte	1
	.byte	17
	.byte	1
	.byte	37
	.byte	14
	.byte	19
	.byte	5
	.byte	3
	.byte	14
	.byte	16
	.byte	23
	.byte	27
	.byte	14
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	0
	.byte	0
	.byte	2
	.byte	46
	.byte	1
	.byte	17
	.byte	1
	.byte	18
	.byte	6
	.byte	64
	.byte	24
	.ascii	"\227B"
	.byte	25
	.byte	3
	.byte	14
	.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	23
	.byte	3
	.byte	14
	.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	14
	.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	23
	.byte	3
	.byte	14
	.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	14
	.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	4
	.long	.debug_abbrev
	.byte	4
	.byte	1
	.long	.Linfo_string0
	.short	12
	.long	.Linfo_string1
	.long	.Lline_table_start0
	.long	.Linfo_string2
	.long	.Lfunc_begin0
	.long	.Lfunc_end1-.Lfunc_begin0
	.byte	2
	.long	.Lfunc_begin0
	.long	.Lfunc_end0-.Lfunc_begin0
	.byte	1
	.byte	91

	.long	.Linfo_string3
	.byte	1
	.byte	1

	.long	166

	.byte	3
	.long	.Ldebug_loc0
	.long	.Linfo_string6
	.byte	1
	.byte	1
	.long	166
	.byte	4
	.byte	1
	.byte	81
	.long	.Linfo_string7
	.byte	1
	.byte	1
	.long	166
	.byte	4
	.byte	1
	.byte	82
	.long	.Linfo_string8
	.byte	1
	.byte	1
	.long	166
	.byte	5
	.long	.Ldebug_loc1
	.long	.Linfo_string9
	.byte	1
	.byte	2
	.long	166
	.byte	5
	.long	.Ldebug_loc2
	.long	.Linfo_string10
	.byte	1
	.byte	3
	.long	166
	.byte	0
	.byte	2
	.long	.Lfunc_begin1
	.long	.Lfunc_end1-.Lfunc_begin1
	.byte	1
	.byte	91

	.long	.Linfo_string5
	.byte	1
	.byte	7

	.long	166

	.byte	4
	.byte	1
	.byte	80
	.long	.Linfo_string6
	.byte	1
	.byte	7
	.long	166
	.byte	0
	.byte	6
	.long	.Linfo_string4
	.byte	5
	.byte	4
	.byte	0
.Ldebug_info_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:
