https://github.com/rmaz created https://github.com/llvm/llvm-project/pull/67744
This change sets the debug compilation directory when generating debug information for PCH object containers. This allows for overriding the compilation directory in debug information in precompiled pcm files. >From 0f6bcb1b367ae74f92a15272e5a85664f901e1f4 Mon Sep 17 00:00:00 2001 From: Richard Howell <r...@fb.com> Date: Thu, 28 Sep 2023 14:31:16 -0700 Subject: [PATCH] [clang] set DebugCompilationDir in PCHContainer This change sets the debug compilation directory when generating debug information for PCH object containers. This allows for overriding the compilation directory in debug information in precompiled pcm files. --- .../ObjectFilePCHContainerOperations.cpp | 2 ++ clang/test/Modules/module-debuginfo-compdir.m | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 clang/test/Modules/module-debuginfo-compdir.m diff --git a/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp b/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp index 9ffeef026bd1b76..ee543e40b46099d 100644 --- a/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp +++ b/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp @@ -161,6 +161,8 @@ class PCHContainerGenerator : public ASTConsumer { CodeGenOpts.setDebugInfo(llvm::codegenoptions::FullDebugInfo); CodeGenOpts.setDebuggerTuning(CI.getCodeGenOpts().getDebuggerTuning()); CodeGenOpts.DwarfVersion = CI.getCodeGenOpts().DwarfVersion; + CodeGenOpts.DebugCompilationDir = + CI.getInvocation().getCodeGenOpts().DebugCompilationDir; CodeGenOpts.DebugPrefixMap = CI.getInvocation().getCodeGenOpts().DebugPrefixMap; CodeGenOpts.DebugStrictDwarf = CI.getCodeGenOpts().DebugStrictDwarf; diff --git a/clang/test/Modules/module-debuginfo-compdir.m b/clang/test/Modules/module-debuginfo-compdir.m new file mode 100644 index 000000000000000..fced242624f75b3 --- /dev/null +++ b/clang/test/Modules/module-debuginfo-compdir.m @@ -0,0 +1,24 @@ +// UNSUPPORTED: target={{.*}}-zos{{.*}}, target={{.*}}-aix{{.*}} +// REQUIRES: asserts + +// Modules: +// RUN: rm -rf %t +// RUN: %clang_cc1 -x objective-c -fmodules -fmodule-format=obj \ +// RUN: -fdebug-compilation-dir=/OVERRIDE \ +// RUN: -fimplicit-module-maps -DMODULES -fmodules-cache-path=%t %s \ +// RUN: -I %S/Inputs -I %t -emit-llvm -o %t.ll \ +// RUN: -mllvm -debug-only=pchcontainer &>%t-mod.ll +// RUN: cat %t-mod.ll | FileCheck %s + +// PCH: +// RUN: %clang_cc1 -x objective-c -emit-pch -fmodule-format=obj -I %S/Inputs \ +// RUN: -fdebug-compilation-dir=/OVERRIDE \ +// RUN: -o %t.pch %S/Inputs/DebugObjC.h \ +// RUN: -mllvm -debug-only=pchcontainer &>%t-pch.ll +// RUN: cat %t-pch.ll | FileCheck %s + +#ifdef MODULES +@import DebugObjC; +#endif + +// CHECK: !DIFile(filename: "{{.*}}DebugObjC{{(\.h)?}}", directory: "/OVERRIDE") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits