File: dwarf5-df-inlined-subroutine-gc-sections-range.test

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (103 lines) | stat: -rw-r--r-- 5,438 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
; RUN: rm -rf %t
; RUN: mkdir %t
; RUN: cd %t
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-inlined-subroutine-gc-sections-range-main.s \
; RUN: -split-dwarf-file=main.dwo -o main.o
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-inlined-subroutine-gc-sections-range-helper.s \
; RUN: -split-dwarf-file=helper.dwo -o helper.o
; RUN: %clang -fuse-ld=lld -Wl,-gc-sections -Wl,-q -gdwarf-5 -gsplit-dwarf=split main.o helper.o -o main.exe
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
; RUN: llvm-dwarfdump --debug-addr main.exe > log.txt
; RUN: llvm-dwarfdump --debug-rnglists --verbose --show-form main.dwo >> log.txt
; RUN: llvm-dwarfdump --debug-info --verbose --show-form main.dwo >> log.txt
; RUN: llvm-dwarfdump --debug-rnglists --verbose --show-form helper.dwo >> log.txt
; RUN: llvm-dwarfdump --debug-info --verbose --show-form helper.dwo >> log.txt
; RUN: llvm-dwarfdump --debug-addr main.exe.bolt > logBolt.txt
; RUN: llvm-dwarfdump --debug-info --verbose --show-form main.dwo.dwo >> logBolt.txt
; RUN: llvm-dwarfdump --debug-info --verbose --show-form helper.dwo.dwo >> logBolt.txt
; RUN: cat log.txt | FileCheck -check-prefix=BOLT-PRE %s
; RUN: cat logBolt.txt | FileCheck -check-prefix=BOLT-MAIN %s

; Tests whether BOLT handles correctly DW_TAG_inlined_subroutine when DW_AT_ranges is 0,
; and split dwarf is enabled.

; BOLT-PRE: Addrs:
; BOLT-PRE: 0x0000000000000000
; BOLT-PRE: 0x0000000000000000
; BOLT-PRE-NOT: 0x0000000000000000
; BOLT-PRE: Addrs:
; BOLT-PRE: 0x0000000000000000
; BOLT-PRE: 0x0000000000000000
; BOLT-PRE: 0x0000000000000000

; main.dwo
; BOLT-PRE: [DW_RLE_base_addressx]:  0x0000000000000002
; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x0000000000000018, 0x000000000000002d => [0x000000000000001a, 0x000000000000002f)
; BOLT-PRE: [DW_RLE_end_of_list  ]
; BOLT-PRE: [DW_RLE_base_addressx]:  0x0000000000000002
; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x0000000000000033, 0x0000000000000042 => [0x0000000000000035, 0x0000000000000044)
; BOLT-PRE: [DW_RLE_end_of_list  ]
; BOLT-PRE: DW_TAG_inlined_subroutine [9] * (0x0000006c)
; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0044 => {0x00000044} "_Z7doStuffi")
; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x0) rangelist = 0x00000014
; BOLT-PRE:   [0x000000000000001a, 0x000000000000002f))
; BOLT-PRE: DW_TAG_inlined_subroutine [9] * (0x0000006c)
; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x005a => {0x0000005a} "_Z11doStuffSamei")
; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x1) rangelist = 0x0000001a
; BOLT-PRE:   [0x0000000000000035, 0x0000000000000044))

; helper.dwo
; BOLT-PRE: [DW_RLE_base_addressx]:  0x0000000000000002
; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x000000000000000d, 0x000000000000001a => [0x000000000000000f, 0x000000000000001c)
; BOLT-PRE: [DW_RLE_end_of_list  ]
; BOLT-PRE: [DW_RLE_base_addressx]:  0x0000000000000002
; BOLT-PRE: [DW_RLE_offset_pair  ]:  0x0000000000000020, 0x000000000000002d => [0x0000000000000022, 0x000000000000002f)
; BOLT-PRE: [DW_RLE_end_of_list  ]
; BOLT-PRE: DW_TAG_inlined_subroutine [11] * (0x0000008c)
; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0054 => {0x00000054} "_Z12doStuff2Samei")
; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x0) rangelist = 0x00000014
; BOLT-PRE:   [0x000000000000000f, 0x000000000000001c))
; BOLT-PRE: DW_TAG_inlined_subroutine [11] * (0x0000008c)
; BOLT-PRE: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0072 => {0x00000072} "_Z8doStuff2i")
; BOLT-PRE: DW_AT_ranges [DW_FORM_rnglistx] (indexed (0x1) rangelist = 0x0000001a
; BOLT-PRE:   [0x0000000000000022, 0x000000000000002f))

; BOLT-MAIN: Addrs:
; BOLT-MAIN: 0x0000000000000000
; BOLT-MAIN-NOT: 0x0000000000000000
; BOLT-MAIN-NOT: 0x0000000000000000
; BOLT-MAIN-NOT: 0x0000000000000000
; BOLT-MAIN: Addrs:
; BOLT-MAIN: 0x0000000000000000

; main.dwo.dwo
; BOLT-MAIN: DW_TAG_inlined_subroutine
; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0044 => {0x00000044} "_Z7doStuffi")
; BOLT-MAIN: DW_AT_call_file
; BOLT-MAIN: DW_AT_call_line
; BOLT-MAIN: DW_AT_call_column
; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000002) address = <unresolved>)
; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x00000015)
; BOLT-MAIN: DW_TAG_inlined_subroutine
; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x005a => {0x0000005a} "_Z11doStuffSamei")
; BOLT-MAIN: DW_AT_call_file
; BOLT-MAIN: DW_AT_call_line
; BOLT-MAIN: DW_AT_call_column
; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000003) address = <unresolved>)
; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x0000000f)

; helper.dwo.dwo
; BOLT-MAIN: DW_TAG_inlined_subroutine
; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0054 => {0x00000054} "_Z12doStuff2Samei")
; BOLT-MAIN: DW_AT_call_file
; BOLT-MAIN: DW_AT_call_line
; BOLT-MAIN: DW_AT_call_column
; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000000) address = <unresolved>)
; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x0000001a)
; BOLT-MAIN: DW_TAG_inlined_subroutine
; BOLT-MAIN: DW_AT_abstract_origin [DW_FORM_ref4]  (cu + 0x0072 => {0x00000072} "_Z8doStuff2i")
; BOLT-MAIN: DW_AT_call_file
; BOLT-MAIN: DW_AT_call_line
; BOLT-MAIN: DW_AT_call_column
; BOLT-MAIN: DW_AT_low_pc [DW_FORM_addrx]  (indexed (00000000) address = <unresolved>)
; BOLT-MAIN: DW_AT_high_pc [DW_FORM_data4] (0x0000002d)