Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'bolt/test/X86/dwarf5-rangeoffset-to-rangeindex.s')
-rw-r--r--bolt/test/X86/dwarf5-rangeoffset-to-rangeindex.s256
1 files changed, 256 insertions, 0 deletions
diff --git a/bolt/test/X86/dwarf5-rangeoffset-to-rangeindex.s b/bolt/test/X86/dwarf5-rangeoffset-to-rangeindex.s
new file mode 100644
index 000000000000..94f01fcc6edc
--- /dev/null
+++ b/bolt/test/X86/dwarf5-rangeoffset-to-rangeindex.s
@@ -0,0 +1,256 @@
+# REQUIRES: system-linux
+
+# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s -o %t1.o
+# RUN: %clang %cflags -dwarf-5 %t1.o -o %t.exe -Wl,-q
+# RUN: llvm-bolt %t.exe -o %t.bolt -update-debug-sections
+# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
+# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt > %t.txt
+# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
+# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
+
+# This tests conversion for DWARF5 ranges DW_AT_ranges [DW_FORM_sec_offset] to DW_AT_ranges [DW_FORM_rnglistx]
+
+# PRECHECK: version = 0x0005
+# PRECHECK: DW_AT_ranges [DW_FORM_sec_offset]
+
+# POSTCHECK: Addrs: [
+# POSTCHECK-NEXT: 0x[[#%.16x,ADDR:]]
+# POSTCHECK-NEXT: 0x[[#%.16x,ADDR1:]]
+# POSTCHECK: version = 0x0005
+# POSTCHECK: DW_AT_ranges [DW_FORM_rnglistx]
+# POSTCHECK-SAME: (indexed (0x0) rangelist = 0x00000018
+# POSTCHECK-NEXT: [0x[[#ADDR]], 0x[[#ADDR + 11]]
+# POSTCHECK-NEXT: [0x[[#ADDR1]], 0x[[#ADDR1 + 11]]
+
+# int foo() {
+# return 3;
+# }
+#
+# int main() {
+# return foo();
+# }
+
+ .file "main.cpp"
+ .text
+.Ltext0:
+ .file 0 "/testRangeOffsetToRangeX" "main.cpp"
+ .section .text._Z3foov,"ax",@progbits
+ .globl _Z3foov
+ .type _Z3foov, @function
+_Z3foov:
+.LFB0:
+ .file 1 "main.cpp"
+ .loc 0 1 11
+ .cfi_startproc
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ .loc 0 2 10
+ movl $3, %eax
+ .loc 0 3 1
+ popq %rbp
+ .cfi_def_cfa 7, 8
+ ret
+ .cfi_endproc
+.LFE0:
+ .size _Z3foov, .-_Z3foov
+ .section .text.main,"ax",@progbits
+ .globl main
+ .type main, @function
+main:
+.LFB1:
+ .loc 0 5 12
+ .cfi_startproc
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ .loc 0 6 13
+ call _Z3foov
+ .loc 0 6 14
+ nop
+ .loc 0 7 1
+ popq %rbp
+ .cfi_def_cfa 7, 8
+ ret
+ .cfi_endproc
+.LFE1:
+ .size main, .-main
+ .text
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x6e
+ .value 0x5
+ .byte 0x1
+ .byte 0x8
+ .long .Ldebug_abbrev0
+ .uleb128 0x1
+ .long .LASF2
+ .byte 0x21
+ .long .LASF0
+ .long .LASF1
+ .long .LLRL0
+ .quad 0
+ .long .Ldebug_line0
+ .uleb128 0x2
+ .long .LASF3
+ .byte 0x1
+ .byte 0x5
+ .byte 0x5
+ .long 0x48
+ .quad .LFB1
+ .quad .LFE1-.LFB1
+ .uleb128 0x1
+ .byte 0x9c
+ .uleb128 0x3
+ .byte 0x4
+ .byte 0x5
+ .string "int"
+ .uleb128 0x4
+ .string "foo"
+ .byte 0x1
+ .byte 0x1
+ .byte 0x5
+ .long .LASF4
+ .long 0x48
+ .quad .LFB0
+ .quad .LFE0-.LFB0
+ .uleb128 0x1
+ .byte 0x9c
+ .byte 0
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1
+ .uleb128 0x11
+ .byte 0x1
+ .uleb128 0x25
+ .uleb128 0xe
+ .uleb128 0x13
+ .uleb128 0xb
+ .uleb128 0x3
+ .uleb128 0x1f
+ .uleb128 0x1b
+ .uleb128 0x1f
+ .uleb128 0x55
+ .uleb128 0x17
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x10
+ .uleb128 0x17
+ .byte 0
+ .byte 0
+ .uleb128 0x2
+ .uleb128 0x2e
+ .byte 0
+ .uleb128 0x3f
+ .uleb128 0x19
+ .uleb128 0x3
+ .uleb128 0xe
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x39
+ .uleb128 0xb
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x12
+ .uleb128 0x7
+ .uleb128 0x40
+ .uleb128 0x18
+ .uleb128 0x7c
+ .uleb128 0x19
+ .byte 0
+ .byte 0
+ .uleb128 0x3
+ .uleb128 0x24
+ .byte 0
+ .uleb128 0xb
+ .uleb128 0xb
+ .uleb128 0x3e
+ .uleb128 0xb
+ .uleb128 0x3
+ .uleb128 0x8
+ .byte 0
+ .byte 0
+ .uleb128 0x4
+ .uleb128 0x2e
+ .byte 0
+ .uleb128 0x3f
+ .uleb128 0x19
+ .uleb128 0x3
+ .uleb128 0x8
+ .uleb128 0x3a
+ .uleb128 0xb
+ .uleb128 0x3b
+ .uleb128 0xb
+ .uleb128 0x39
+ .uleb128 0xb
+ .uleb128 0x6e
+ .uleb128 0xe
+ .uleb128 0x49
+ .uleb128 0x13
+ .uleb128 0x11
+ .uleb128 0x1
+ .uleb128 0x12
+ .uleb128 0x7
+ .uleb128 0x40
+ .uleb128 0x18
+ .uleb128 0x7a
+ .uleb128 0x19
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .long 0x3c
+ .value 0x2
+ .long .Ldebug_info0
+ .byte 0x8
+ .byte 0
+ .value 0
+ .value 0
+ .quad .LFB0
+ .quad .LFE0-.LFB0
+ .quad .LFB1
+ .quad .LFE1-.LFB1
+ .quad 0
+ .quad 0
+ .section .debug_rnglists,"",@progbits
+.Ldebug_ranges0:
+ .long .Ldebug_ranges3-.Ldebug_ranges2
+.Ldebug_ranges2:
+ .value 0x5
+ .byte 0x8
+ .byte 0
+ .long 0
+.LLRL0:
+ .byte 0x7
+ .quad .LFB0
+ .uleb128 .LFE0-.LFB0
+ .byte 0x7
+ .quad .LFB1
+ .uleb128 .LFE1-.LFB1
+ .byte 0
+.Ldebug_ranges3:
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF4:
+ .string "_Z3foov"
+.LASF3:
+ .string "main"
+.LASF2:
+ .string "GNU C++17 11.x"
+ .section .debug_line_str,"MS",@progbits,1
+.LASF0:
+ .string "main.cpp"
+.LASF1:
+ .string "/testRangeOffsetToRangeX"
+ .ident "GCC: (GNU) 11.x"
+ .section .note.GNU-stack,"",@progbits