[clang] Expose CrossTU context in CheckerContext.h (PR #181713)

Davide Cunial via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 16 10:06:38 PST 2026


https://github.com/capitan-davide created https://github.com/llvm/llvm-project/pull/181713

Sometimes I find it useful to write an AST visitor that can cross TU boundaries. This patch allows to do this in a CSA checker.


>From 7c2926bae0f39b8f845420716860b8a1ff1e2b9f Mon Sep 17 00:00:00 2001
From: Davide Cunial <dcunial at proton.me>
Date: Mon, 16 Feb 2026 19:04:16 +0100
Subject: [PATCH] Expose CrossTU context in CheckerContext.h

---
 .../StaticAnalyzer/Core/PathSensitive/CheckerContext.h   | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
index cf035a999af8a..dab36cae32109 100644
--- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
+++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_CHECKERCONTEXT_H
 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_CHECKERCONTEXT_H
 
+#include "clang/CrossTU/CrossTranslationUnit.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h"
 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
 #include <optional>
@@ -69,6 +70,14 @@ class CheckerContext {
     return Eng.getConstraintManager();
   }
 
+  cross_tu::CrossTranslationUnitContext *getCrossTranslationUnitContext() {
+    return Eng.getCrossTranslationUnitContext();
+  }
+  const cross_tu::CrossTranslationUnitContext *
+  getCrossTranslationUnitContext() const {
+    return Eng.getCrossTranslationUnitContext();
+  }
+
   StoreManager &getStoreManager() {
     return Eng.getStoreManager();
   }



More information about the cfe-commits mailing list