Skip to content

Commit fb307ff

Browse files
Merge pull request swiftlang#74349 from adrian-prantl/128309024
Finalize Swift debug info before running Clang codegen, because it ma…
2 parents 79f111a + bba8b92 commit fb307ff

File tree

3 files changed

+12
-24
lines changed

3 files changed

+12
-24
lines changed

lib/IRGen/IRGenModule.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1963,12 +1963,14 @@ bool IRGenModule::finalize() {
19631963
}
19641964
emitLazyPrivateDefinitions();
19651965

1966-
// Finalize clang IR-generation.
1967-
finalizeClangCodeGen();
1968-
1966+
// Finalize Swift debug info before running Clang codegen, because it may
1967+
// delete the llvm module.
19691968
if (DebugInfo)
19701969
DebugInfo->finalize();
19711970

1971+
// Finalize clang IR-generation.
1972+
finalizeClangCodeGen();
1973+
19721974
// If that failed, report failure up and skip the final clean-up.
19731975
if (!ClangCodeGen->GetModule())
19741976
return false;

test/DebugInfo/BridgingHeaderPCH.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55

66
// CHECK: !DICompileUnit(language: DW_LANG_Swift
77
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},
8-
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},
9-
// CHECK-SAME: splitDebugFilename: "{{.*}}.pch"
10-
// CHECK-SAME: dwoId:
8+
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}}{{.*}}splitDebugFilename: "{{.*}}.pch",{{.*}}dwoId:
119

1210
Foo()

test/DebugInfo/ClangModuleBreadcrumbs.swift

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,17 @@ import OtherClangModule.SubModule
1616
let _ = someFunc(0)
1717

1818
// Check for Clang module breadcrumbs.
19-
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift
20-
// CHECK-SAME: ClangModule
21-
// CHECK-SAME: dwoId:
19+
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift{{.*}}ClangModule{{.*}}dwoId:
2220

23-
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}}, {{.*}} producer: "{{.*}}Swift
24-
// CHECK-SAME: OtherClangModule
25-
// CHECK-SAME: dwoId:
21+
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}}, {{.*}} producer: "{{.*}}Swift{{.*}}OtherClangModule{{.*}}dwoId:
2622

27-
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang
28-
// CHECK-SAME: ClangModule
29-
// CHECK-SAME: dwoId:
23+
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang{{.*}}ClangModule{{.*}}dwoId:
3024

3125
// NONE: DICompileUnit({{.*}}
3226
// NONE-NOT: DICompileUnit({{.*}}ClangModule
3327

34-
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift
35-
// REMAP-SAME: PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule
36-
// REMAP-SAME: dwoId:
28+
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift{{.*}}PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule{{.*}}dwoId:
3729

38-
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift
39-
// REMAP-SAME: PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}OtherClangModule
40-
// REMAP-SAME: dwoId:
30+
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift{{.*}}PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}OtherClangModule{{.*}}dwoId:
4131

42-
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang
43-
// REMAP-SAME: PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule
44-
// REMAP-SAME: dwoId:
32+
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang{{.*}}PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule{{.*}}dwoId:

0 commit comments

Comments
 (0)