Author: Endre Fülöp Date: 2022-06-01T08:21:16+02:00 New Revision: 1c459a20ea5626264d867aaf65882c9cc6d0bf8a
URL: https://github.com/llvm/llvm-project/commit/1c459a20ea5626264d867aaf65882c9cc6d0bf8a DIFF: https://github.com/llvm/llvm-project/commit/1c459a20ea5626264d867aaf65882c9cc6d0bf8a.diff LOG: Revert "[clang-tidy] Extend cert-oop57-cpp to check non-zero memset values" Revert to fix a ReleaseNote issue. This reverts commit d33f199910fa02cf7072f3227913e670c98d03a9. Added: Modified: clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp clang-tools-extra/docs/ReleaseNotes.rst clang-tools-extra/test/clang-tidy/checkers/cert-oop57-cpp.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp b/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp index 5c8da5b4cacf7..8e6acea290826 100644 --- a/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp +++ b/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp @@ -80,7 +80,7 @@ void NonTrivialTypesLibcMemoryCallsCheck::registerMatchers( auto IsRecordSizeOf = expr(sizeOfExpr(hasArgumentOfType(equalsBoundNode("Record")))); auto ArgChecker = [&](Matcher<CXXRecordDecl> RecordConstraint, - BindableMatcher<Stmt> SecondArg = expr()) { + BindableMatcher<Stmt> SecondArg) { return allOf(argumentCountIs(3), hasArgument(0, IsStructPointer(RecordConstraint, true)), hasArgument(1, SecondArg), hasArgument(2, IsRecordSizeOf)); @@ -89,7 +89,8 @@ void NonTrivialTypesLibcMemoryCallsCheck::registerMatchers( Finder->addMatcher( callExpr(callee(namedDecl(hasAnyName( utils::options::parseListPair(BuiltinMemSet, MemSetNames)))), - ArgChecker(unless(isTriviallyDefaultConstructible()))) + ArgChecker(unless(isTriviallyDefaultConstructible()), + expr(integerLiteral(equals(0))))) .bind("lazyConstruct"), this); Finder->addMatcher( diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index e21bee6a80b30..5196c53291d19 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -156,9 +156,6 @@ Changes in existing checks <clang-tidy/checks/bugprone-sizeof-expression>` when `sizeof(...)` is compared against a `__int128_t`. -- Made :doc:`cert-oop57-cpp <clang-tidy/checks/cert-oop57-cpp>` more sensitive - by checking for an arbitrary expression in the second argument of `memset`. - - Improved :doc:`cppcoreguidelines-prefer-member-initializer <clang-tidy/checks/cppcoreguidelines-prefer-member-initializer>` check. diff --git a/clang-tools-extra/test/clang-tidy/checkers/cert-oop57-cpp.cpp b/clang-tools-extra/test/clang-tidy/checkers/cert-oop57-cpp.cpp index 880c5c3a1c9fe..a5a38734ce6ae 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/cert-oop57-cpp.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/cert-oop57-cpp.cpp @@ -88,17 +88,3 @@ void baz(const NonTrivial &Other) { mymemcmp(&Data, &Other, sizeof(Data)); // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: consider using comparison operators instead of calling 'mymemcmp' } - -void nonNullSetValue() { - NonTrivial Data; - // Check non-null-valued second argument. - std::memset(&Data, 1, sizeof(Data)); - // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: calling 'memset' on a non-trivially default constructible class is undefined -} - -void nonLiteralSetValue(char C) { - NonTrivial Data; - // Check non-literal second argument. - std::memset(&Data, C, sizeof(Data)); - // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: calling 'memset' on a non-trivially default constructible class is undefined -} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits