[clang] 2388880 - [analyzer] Add #undef REGISTER_CHECKER to files that define it (#188683)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 26 06:17:27 PDT 2026
Author: Maksim Levental
Date: 2026-03-26T06:17:19-07:00
New Revision: 238888099971f0498cbec0c643ef5e48060a240c
URL: https://github.com/llvm/llvm-project/commit/238888099971f0498cbec0c643ef5e48060a240c
DIFF: https://github.com/llvm/llvm-project/commit/238888099971f0498cbec0c643ef5e48060a240c.diff
LOG: [analyzer] Add #undef REGISTER_CHECKER to files that define it (#188683)
Eight StaticAnalyzer checker files define a REGISTER_CHECKER macro that
is never undefined, which can leak into subsequent translation units in
unity builds. Add #undef REGISTER_CHECKER at the end of each file. See
https://discourse.llvm.org/t/rfc-enabling-unity-build/90306 for more
info.
"clauded" not coded
Added:
Modified:
clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
Removed:
################################################################################
diff --git a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
index 3684bccaf2d9a..fbb47348db55b 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
@@ -3004,3 +3004,5 @@ REGISTER_CHECKER(OutOfBounds)
REGISTER_CHECKER(BufferOverlap)
REGISTER_CHECKER(NotNullTerm)
REGISTER_CHECKER(UninitializedRead)
+
+#undef REGISTER_CHECKER
diff --git a/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp b/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
index 1b94ccdbc4b5e..797e1efc7e8ca 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
@@ -1179,3 +1179,5 @@ bool ento::shouldRegisterDeprecatedOrUnsafeBufferHandling(
}
REGISTER_CHECKER(decodeValueOfObjCType)
+
+#undef REGISTER_CHECKER
diff --git a/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
index 3f0dc1d850232..ee65e34fee820 100644
--- a/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
@@ -740,3 +740,5 @@ bool ento::shouldRegisterIvarInvalidationModeling(const CheckerManager &mgr) {
REGISTER_CHECKER(InstanceVariableInvalidation)
REGISTER_CHECKER(MissingInvalidationMethod)
+
+#undef REGISTER_CHECKER
diff --git a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
index 68369f8e81eb2..1f6d633dc7ce6 100644
--- a/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
@@ -4224,3 +4224,5 @@ REGISTER_CHECKER(NewDeleteChecker)
REGISTER_CHECKER(NewDeleteLeaksChecker)
REGISTER_CHECKER(MismatchedDeallocatorChecker)
REGISTER_CHECKER(TaintedAllocChecker)
+
+#undef REGISTER_CHECKER
diff --git a/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
index d2760ca3a4b5e..a9fc0bd1697d2 100644
--- a/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
@@ -313,3 +313,5 @@ static bool IsCFError(QualType T, IdentifierInfo *II) {
REGISTER_CHECKER(NSError, NSErrorMethodChecker)
REGISTER_CHECKER(CFError, CFErrorFunctionChecker)
+
+#undef REGISTER_CHECKER
diff --git a/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
index eeb6b720cce2a..2746083431dce 100644
--- a/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
@@ -1418,3 +1418,5 @@ REGISTER_CHECKER(NullReturnedFromNonnull, false)
REGISTER_CHECKER(NullableDereferenced, true)
REGISTER_CHECKER(NullablePassedToNonnull, true)
REGISTER_CHECKER(NullableReturnedFromNonnull, true)
+
+#undef REGISTER_CHECKER
diff --git a/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
index 86530086ff1b2..73e046cdb3fd7 100644
--- a/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
@@ -745,3 +745,5 @@ bool ento::shouldRegisterPthreadLockBase(const CheckerManager &mgr) { return tru
REGISTER_CHECKER(PthreadLockChecker)
REGISTER_CHECKER(FuchsiaLockChecker)
REGISTER_CHECKER(C11LockChecker)
+
+#undef REGISTER_CHECKER
diff --git a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
index 027bf780273cc..4c1633a51951e 100644
--- a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
@@ -628,3 +628,5 @@ void StackAddrEscapeChecker::checkEndFunction(const ReturnStmt *RS,
REGISTER_CHECKER(StackAddrEscape)
REGISTER_CHECKER(StackAddrAsyncEscape)
+
+#undef REGISTER_CHECKER
More information about the cfe-commits
mailing list