|
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