[clang-tools-extra] 1c459a2 - Revert "[clang-tidy] Extend cert-oop57-cpp to check non-zero memset values"

Endre Fülöp via cfe-commits cfe-commits at lists.llvm.org
Tue May 31 23:23:49 PDT 2022


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
-}


        


More information about the cfe-commits mailing list