[clang] [analyzer] MallocChecker – Fix false positive leak for smart pointers in temporary objects (PR #152751)

Balazs Benics via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 9 07:11:01 PDT 2025


================
@@ -3068,11 +3107,217 @@ void MallocChecker::checkDeadSymbols(SymbolReaper &SymReaper,
   C.addTransition(state->set<RegionState>(RS), N);
 }
 
+static QualType canonicalStrip(QualType QT) {
+  return QT.getCanonicalType().getUnqualifiedType();
+}
+
+static bool isInStdNamespace(const DeclContext *DC) {
+  while (DC) {
+    if (const auto *NS = dyn_cast<NamespaceDecl>(DC))
+      if (NS->isStdNamespace())
+        return true;
+    DC = DC->getParent();
+  }
+  return false;
+}
----------------
steakhal wrote:

Isn't this a copy of the `clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h isWithinStdNamespace`?
BTW now looking at it, this would wrongly, match the `my::std` namespace, which is not great.

https://github.com/llvm/llvm-project/pull/152751


More information about the cfe-commits mailing list