|
1 | 1 | ; RUN: llc -mtriple=x86_64-linux -split-dwarf-cross-cu-references -split-dwarf-file=foo.dwo -filetype=obj -o %t < %s
|
2 |
| -; RUN: llvm-objdump -r %t | FileCheck %s |
3 |
| -; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck --check-prefix=ALL --check-prefix=INFO --check-prefix=DWO --check-prefix=CROSS %s |
4 |
| -; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck --check-prefix=ALL --check-prefix=INFO %s |
| 2 | +; RUN: llvm-objdump -r %t | FileCheck --check-prefix=CHECK --check-prefix=RELO_CROSS %s |
| 3 | +; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck --check-prefix=ALL --check-prefix=DWO --check-prefix=CROSS %s |
| 4 | +; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck --check-prefix=ALL %s |
5 | 5 |
|
6 | 6 | ; RUN: llc -mtriple=x86_64-linux -split-dwarf-file=foo.dwo -filetype=obj -o %t < %s
|
7 |
| -; RUN: llvm-objdump -r %t | FileCheck %s |
| 7 | +; RUN: llvm-objdump -r %t | FileCheck --check-prefix=CHECK %s |
8 | 8 | ; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck --check-prefix=ALL --check-prefix=DWO --check-prefix=NOCROSS %s
|
9 |
| -; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck --check-prefix=ALL --check-prefix=INFO %s |
| 9 | +; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck --check-prefix=ALL %s |
10 | 10 |
|
11 | 11 | ; Testing cross-CU references for types, subprograms, and variables
|
12 | 12 | ; Built from code something like this:
|
|
48 | 48 | ; CHECK-NOT: RELOCATION RECORDS
|
49 | 49 | ; Expect one relocation in debug_info, from the inlined f1 in foo to its
|
50 | 50 | ; abstract origin in bar
|
51 |
| -; CHECK: R_X86_64_32 .debug_info |
52 |
| -; CHECK-NOT: RELOCATION RECORDS |
| 51 | +; RELO_CROSS: R_X86_64_32 .debug_info |
| 52 | +; Expect no relocations in debug_info when disabling multiple CUs in Split DWARF |
53 | 53 | ; CHECK-NOT: .debug_info
|
54 | 54 | ; CHECK: RELOCATION RECORDS
|
55 | 55 | ; CHECK-NOT: .rel{{a?}}.debug_info.dwo
|
|
75 | 75 | ; DWO: DW_TAG_formal_parameter
|
76 | 76 | ; DWO: DW_AT_abstract_origin [DW_FORM_ref4] {{.*}}{0x[[F1T]]}
|
77 | 77 |
|
78 |
| -; ALL: Compile Unit |
79 |
| -; ALL: DW_TAG_compile_unit |
80 |
| -; DWO: DW_AT_name {{.*}} "bar.cpp" |
81 |
| -; NOCROSS: 0x[[BAR_F1:.*]]: DW_TAG_subprogram |
82 |
| -; NOCROSS: DW_AT_name {{.*}} "f1" |
83 |
| -; NOCROSS: 0x[[BAR_F1T:.*]]: DW_TAG_formal_parameter |
84 |
| -; NOCROSS: DW_AT_name {{.*}} "t" |
85 |
| -; NOCROSS: DW_AT_type [DW_FORM_ref4] {{.*}}{0x[[BAR_T1:.*]]} |
86 |
| -; NOCROSS: NULL |
87 |
| -; NOCROSS: 0x[[BAR_T1]]: DW_TAG_structure_type |
88 |
| -; NOCROSS: DW_AT_name {{.*}} "t1" |
| 78 | +; NOCROSS-NOT: DW_TAG_compile_unit |
| 79 | +; CROSS: Compile Unit |
| 80 | +; CROSS: DW_TAG_compile_unit |
| 81 | +; CROSS: DW_AT_name {{.*}} "bar.cpp" |
89 | 82 | ; ALL: DW_TAG_subprogram
|
90 | 83 | ; ALL: DW_AT_name {{.*}} "bar"
|
91 | 84 | ; DWO: DW_TAG_formal_parameter
|
92 | 85 | ; DWO: DW_AT_name {{.*}} "t"
|
93 | 86 | ; CROSS: DW_AT_type [DW_FORM_ref_addr] (0x00000000[[T1]]
|
94 |
| -; NOCROSS: DW_AT_type [DW_FORM_ref4] {{.*}}{0x[[BAR_T1]]} |
| 87 | +; NOCROSS: DW_AT_type [DW_FORM_ref4] {{.*}}{0x[[T1]]} |
95 | 88 | ; ALL: DW_TAG_inlined_subroutine
|
96 |
| -; INFO: DW_AT_abstract_origin [DW_FORM_ref_addr] (0x00000000[[F1]] |
97 |
| -; NOCROSS: DW_AT_abstract_origin [DW_FORM_ref4] {{.*}}{0x[[BAR_F1]]} |
| 89 | +; CROSS: DW_AT_abstract_origin [DW_FORM_ref_addr] (0x00000000[[F1]] |
| 90 | +; NOCROSS: DW_AT_abstract_origin [DW_FORM_ref4] {{.*}}{0x[[F1]]} |
98 | 91 | ; DWO: DW_TAG_formal_parameter
|
99 | 92 | ; CROSS: DW_AT_abstract_origin [DW_FORM_ref_addr] (0x00000000[[F1T]]
|
100 |
| -; NOCROSS: DW_AT_abstract_origin [DW_FORM_ref4] {{.*}}{0x[[BAR_F1T]] |
| 93 | +; NOCROSS: DW_AT_abstract_origin [DW_FORM_ref4] {{.*}}{0x[[F1T]] |
101 | 94 |
|
102 | 95 | %struct.t1 = type { i32 }
|
103 | 96 |
|
|
0 commit comments