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 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
