mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Finalize Swift debug info before running Clang codegen, because it may delete
the llvm module. rdar://128309024
This commit is contained in:
@@ -1963,12 +1963,14 @@ bool IRGenModule::finalize() {
|
||||
}
|
||||
emitLazyPrivateDefinitions();
|
||||
|
||||
// Finalize clang IR-generation.
|
||||
finalizeClangCodeGen();
|
||||
|
||||
// Finalize Swift debug info before running Clang codegen, because it may
|
||||
// delete the llvm module.
|
||||
if (DebugInfo)
|
||||
DebugInfo->finalize();
|
||||
|
||||
// Finalize clang IR-generation.
|
||||
finalizeClangCodeGen();
|
||||
|
||||
// If that failed, report failure up and skip the final clean-up.
|
||||
if (!ClangCodeGen->GetModule())
|
||||
return false;
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_Swift
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},
|
||||
// CHECK-SAME: splitDebugFilename: "{{.*}}.pch"
|
||||
// CHECK-SAME: dwoId:
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}}{{.*}}splitDebugFilename: "{{.*}}.pch",{{.*}}dwoId:
|
||||
|
||||
Foo()
|
||||
|
||||
@@ -16,29 +16,17 @@ import OtherClangModule.SubModule
|
||||
let _ = someFunc(0)
|
||||
|
||||
// Check for Clang module breadcrumbs.
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift
|
||||
// CHECK-SAME: ClangModule
|
||||
// CHECK-SAME: dwoId:
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift{{.*}}ClangModule{{.*}}dwoId:
|
||||
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}}, {{.*}} producer: "{{.*}}Swift
|
||||
// CHECK-SAME: OtherClangModule
|
||||
// CHECK-SAME: dwoId:
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}}, {{.*}} producer: "{{.*}}Swift{{.*}}OtherClangModule{{.*}}dwoId:
|
||||
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang
|
||||
// CHECK-SAME: ClangModule
|
||||
// CHECK-SAME: dwoId:
|
||||
// CHECK: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang{{.*}}ClangModule{{.*}}dwoId:
|
||||
|
||||
// NONE: DICompileUnit({{.*}}
|
||||
// NONE-NOT: DICompileUnit({{.*}}ClangModule
|
||||
|
||||
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift
|
||||
// REMAP-SAME: PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule
|
||||
// REMAP-SAME: dwoId:
|
||||
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift{{.*}}PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule{{.*}}dwoId:
|
||||
|
||||
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift
|
||||
// REMAP-SAME: PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}OtherClangModule
|
||||
// REMAP-SAME: dwoId:
|
||||
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}Swift{{.*}}PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}OtherClangModule{{.*}}dwoId:
|
||||
|
||||
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang
|
||||
// REMAP-SAME: PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule
|
||||
// REMAP-SAME: dwoId:
|
||||
// REMAP: !DICompileUnit(language: DW_LANG_{{ObjC|C99|C11}},{{.*}} producer: "{{.*}}clang{{.*}}PREFIX{{/|\\\\}}{{.*}}{{/|\\\\}}ClangModule{{.*}}dwoId:
|
||||
|
||||
Reference in New Issue
Block a user