[lld] [llvm] [LLVM] Add missing #undef DEBUG_TYPE to headers that #define it (PR #188680)

Maksim Levental via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 25 22:49:51 PDT 2026


https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/188680

>From 0041bf488fda39d584d64121a6b58617ec4956d0 Mon Sep 17 00:00:00 2001
From: makslevental <maksim.levental at gmail.com>
Date: Wed, 25 Mar 2026 22:19:36 -0700
Subject: [PATCH 1/2] Add missing #undef DEBUG_TYPE to headers that #define it

Several headers define DEBUG_TYPE but never undefine it before the
closing include guard. This means any translation unit that includes
these headers (directly or transitively) gets the header's DEBUG_TYPE
leaked into its scope, which can silently override or conflict with
the file's own DEBUG_TYPE.

Add the missing #undef DEBUG_TYPE before the final #endif in each
affected header, matching the convention used by the majority of
LLVM/Clang/LLD headers that define DEBUG_TYPE.

Affected headers:
- lld/wasm/SyntheticSections.h
- llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
- llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h
- llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h
- llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
- llvm/lib/IR/ConstantsContext.h
- llvm/tools/llvm-ir2vec/lib/Utils.h
- llvm/tools/llvm-mca/PipelinePrinter.h
- llvm/tools/llvm-mca/Views/InstructionInfoView.h
---
 lld/wasm/SyntheticSections.h                                    | 2 ++
 .../llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h      | 2 ++
 llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h         | 2 ++
 .../ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h   | 2 ++
 .../ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h  | 2 ++
 llvm/lib/IR/ConstantsContext.h                                  | 2 ++
 llvm/tools/llvm-ir2vec/lib/Utils.h                              | 2 ++
 llvm/tools/llvm-mca/PipelinePrinter.h                           | 2 ++
 llvm/tools/llvm-mca/Views/InstructionInfoView.h                 | 2 ++
 9 files changed, 18 insertions(+)

diff --git a/lld/wasm/SyntheticSections.h b/lld/wasm/SyntheticSections.h
index 2862b22da86b3..65c084f903703 100644
--- a/lld/wasm/SyntheticSections.h
+++ b/lld/wasm/SyntheticSections.h
@@ -492,4 +492,6 @@ extern OutStruct out;
 } // namespace wasm
 } // namespace lld
 
+#undef DEBUG_TYPE
+
 #endif
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h b/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
index d8d7ccc0bd7a7..da9807a9618d2 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
@@ -1580,4 +1580,6 @@ class LegalizationArtifactCombiner {
 
 } // namespace llvm
 
+#undef DEBUG_TYPE
+
 #endif // LLVM_CODEGEN_GLOBALISEL_LEGALIZATIONARTIFACTCOMBINER_H
diff --git a/llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h b/llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h
index 50ba2f822d832..61bd569722a63 100644
--- a/llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h
+++ b/llvm/lib/ExecutionEngine/JITLink/COFFLinkGraphBuilder.h
@@ -235,4 +235,6 @@ class GetImageBaseSymbol {
 } // end namespace jitlink
 } // end namespace llvm
 
+#undef DEBUG_TYPE
+
 #endif // LIB_EXECUTIONENGINE_JITLINK_COFFLINKGRAPHBUILDER_H
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h b/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h
index 0d5afc289b8c5..33a174e4f373c 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h
@@ -224,5 +224,7 @@ class RuntimeDyldCOFFI386 : public RuntimeDyldCOFF {
 
 }
 
+#undef DEBUG_TYPE
+
 #endif
 
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h b/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
index 19e42253ab1d7..c96e2cebe5e0b 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
@@ -345,4 +345,6 @@ class RuntimeDyldCOFFThumb : public RuntimeDyldCOFF {
 
 }
 
+#undef DEBUG_TYPE
+
 #endif
diff --git a/llvm/lib/IR/ConstantsContext.h b/llvm/lib/IR/ConstantsContext.h
index cc9bad431787c..555f75b2855ef 100644
--- a/llvm/lib/IR/ConstantsContext.h
+++ b/llvm/lib/IR/ConstantsContext.h
@@ -693,4 +693,6 @@ template <> inline void ConstantUniqueMap<InlineAsm>::freeConstants() {
 
 } // end namespace llvm
 
+#undef DEBUG_TYPE
+
 #endif // LLVM_LIB_IR_CONSTANTSCONTEXT_H
diff --git a/llvm/tools/llvm-ir2vec/lib/Utils.h b/llvm/tools/llvm-ir2vec/lib/Utils.h
index ae2f931a90cf9..d47874c68e4b0 100644
--- a/llvm/tools/llvm-ir2vec/lib/Utils.h
+++ b/llvm/tools/llvm-ir2vec/lib/Utils.h
@@ -218,4 +218,6 @@ struct MIRContext {
 
 } // namespace llvm
 
+#undef DEBUG_TYPE
+
 #endif // LLVM_TOOLS_LLVM_IR2VEC_UTILS_UTILS_H
diff --git a/llvm/tools/llvm-mca/PipelinePrinter.h b/llvm/tools/llvm-mca/PipelinePrinter.h
index d89e913f979f6..d1ebff14d58ba 100644
--- a/llvm/tools/llvm-mca/PipelinePrinter.h
+++ b/llvm/tools/llvm-mca/PipelinePrinter.h
@@ -66,4 +66,6 @@ class PipelinePrinter {
 } // namespace mca
 } // namespace llvm
 
+#undef DEBUG_TYPE
+
 #endif // LLVM_TOOLS_LLVM_MCA_PIPELINEPRINTER_H
diff --git a/llvm/tools/llvm-mca/Views/InstructionInfoView.h b/llvm/tools/llvm-mca/Views/InstructionInfoView.h
index 34c6fec46a6d5..e068088db4f50 100644
--- a/llvm/tools/llvm-mca/Views/InstructionInfoView.h
+++ b/llvm/tools/llvm-mca/Views/InstructionInfoView.h
@@ -109,4 +109,6 @@ class InstructionInfoView : public InstructionView {
 } // namespace mca
 } // namespace llvm
 
+#undef DEBUG_TYPE
+
 #endif

>From 8ec797ee96bf1a9c5bbcfeb5e72ed3572c19c2ca Mon Sep 17 00:00:00 2001
From: makslevental <maksim.levental at gmail.com>
Date: Wed, 25 Mar 2026 22:49:33 -0700
Subject: [PATCH 2/2] Fix DebugInfo.cpp and Instructions.cpp after
 ConstantsContext.h #undef

Both files were relying on DEBUG_TYPE "ir" leaked from
ConstantsContext.h. Add explicit #define DEBUG_TYPE to each file.
---
 llvm/lib/IR/DebugInfo.cpp    | 3 +++
 llvm/lib/IR/Instructions.cpp | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp
index d27c3a9a1548a..7082efc99a3a1 100644
--- a/llvm/lib/IR/DebugInfo.cpp
+++ b/llvm/lib/IR/DebugInfo.cpp
@@ -41,6 +41,9 @@
 #include <cassert>
 #include <optional>
 
+#undef DEBUG_TYPE
+#define DEBUG_TYPE "debug-info"
+
 using namespace llvm;
 using namespace llvm::at;
 using namespace llvm::dwarf;
diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp
index 8a220c48acac8..499790ad57e19 100644
--- a/llvm/lib/IR/Instructions.cpp
+++ b/llvm/lib/IR/Instructions.cpp
@@ -51,6 +51,9 @@
 #include <optional>
 #include <vector>
 
+#undef DEBUG_TYPE
+#define DEBUG_TYPE "instructions"
+
 using namespace llvm;
 
 static cl::opt<bool> DisableI2pP2iOpt(



More information about the llvm-commits mailing list