[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