[clang] [Modules] Add information about the built module when clang crashes. (PR #178108)
Volodymyr Sapsai via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 26 19:24:57 PST 2026
https://github.com/vsapsai created https://github.com/llvm/llvm-project/pull/178108
Mirror `remark_module_build`.
>From 79aa74119c96c8c6790f8271dc766f949969a32b Mon Sep 17 00:00:00 2001
From: Volodymyr Sapsai <vsapsai at apple.com>
Date: Mon, 26 Jan 2026 19:15:22 -0800
Subject: [PATCH] [Modules] Add information about the built module when clang
crashes.
Mirror `remark_module_build`.
---
clang/lib/Frontend/CompilerInstance.cpp | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp
index bb5230b4d22f6..ae17e5467c712 100644
--- a/clang/lib/Frontend/CompilerInstance.cpp
+++ b/clang/lib/Frontend/CompilerInstance.cpp
@@ -1232,10 +1232,26 @@ std::unique_ptr<CompilerInstance> CompilerInstance::cloneForModuleCompileImpl(
return InstancePtr;
}
+namespace {
+class PrettyStackTraceBuildModule : public llvm::PrettyStackTraceEntry {
+ StringRef ModuleName;
+ StringRef ModuleFileName;
+
+public:
+ PrettyStackTraceBuildModule(StringRef ModuleName, StringRef ModuleFileName)
+ : ModuleName(ModuleName), ModuleFileName(ModuleFileName) {}
+ void print(raw_ostream &OS) const override {
+ OS << "Building module '" << ModuleName << "' as '" << ModuleFileName
+ << "'\n";
+ }
+};
+} // namespace
+
bool CompilerInstance::compileModule(SourceLocation ImportLoc,
StringRef ModuleName,
StringRef ModuleFileName,
CompilerInstance &Instance) {
+ PrettyStackTraceBuildModule CrashInfo(ModuleName, ModuleFileName);
llvm::TimeTraceScope TimeScope("Module Compile", ModuleName);
// Never compile a module that's already finalized - this would cause the
More information about the cfe-commits
mailing list