https://github.com/dvbuka updated https://github.com/llvm/llvm-project/pull/162039
>From 236cee683ac84ebd7ac6cd41f0d78020c312f68c Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 5 Oct 2025 15:44:45 -0700 Subject: [PATCH 01/10] [clang-tidy] Add new alias 'libc-memory-calls-on-nontrivial-types' for 'cert-oop57-cpp' --- .../clang-tidy/bugprone/CMakeLists.txt | 1 + ...LibcMemoryCallsOnNonTrivialTypesCheck.cpp} | 14 +++---- .../LibcMemoryCallsOnNonTrivialTypesCheck.h} | 16 ++++---- .../clang-tidy/cert/CERTTidyModule.cpp | 4 +- .../clang-tidy/cert/CMakeLists.txt | 1 - clang-tools-extra/docs/ReleaseNotes.rst | 5 +++ .../libc-memory-calls-on-nontrivial-types.rst | 40 +++++++++++++++++++ .../docs/clang-tidy/checks/cert/oop57-cpp.rst | 40 +++---------------- .../docs/clang-tidy/checks/list.rst | 5 ++- ...libc-memory-calls-on-nontrivial-types.cpp} | 8 ++-- 10 files changed, 75 insertions(+), 59 deletions(-) rename clang-tools-extra/clang-tidy/{cert/NonTrivialTypesLibcMemoryCallsCheck.cpp => bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.cpp} (92%) rename clang-tools-extra/clang-tidy/{cert/NonTrivialTypesLibcMemoryCallsCheck.h => bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h} (66%) create mode 100644 clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst rename clang-tools-extra/test/clang-tidy/checkers/{cert/oop57-cpp.cpp => bugprone/libc-memory-calls-on-nontrivial-types.cpp} (93%) diff --git a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt index c8943e5b22ef8..f5b8c71da833a 100644 --- a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt @@ -43,6 +43,7 @@ add_clang_library(clangTidyBugproneModule STATIC InfiniteLoopCheck.cpp IntegerDivisionCheck.cpp LambdaFunctionNameCheck.cpp + LibcMemoryCallsOnNonTrivialTypesCheck.cpp MacroParenthesesCheck.cpp MacroRepeatedSideEffectsCheck.cpp MisleadingSetterOfReferenceCheck.cpp diff --git a/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.cpp similarity index 92% rename from clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp rename to clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.cpp index e266cf995e8a7..5127611b191d9 100644 --- a/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.cpp @@ -6,7 +6,7 @@ // //===----------------------------------------------------------------------===// -#include "NonTrivialTypesLibcMemoryCallsCheck.h" +#include "LibcMemoryCallsOnNonTrivialTypesCheck.h" #include "../utils/OptionsUtils.h" #include "clang/AST/Decl.h" #include "clang/ASTMatchers/ASTMatchFinder.h" @@ -17,7 +17,7 @@ using namespace clang::ast_matchers; -namespace clang::tidy::cert { +namespace clang::tidy::bugprone { namespace { AST_MATCHER(CXXRecordDecl, isTriviallyDefaultConstructible) { @@ -48,21 +48,21 @@ static constexpr llvm::StringRef ComparisonOperators[] = { "operator==", "operator!=", "operator<", "operator>", "operator<=", "operator>="}; -NonTrivialTypesLibcMemoryCallsCheck::NonTrivialTypesLibcMemoryCallsCheck( +LibcMemoryCallsOnNonTrivialTypesCheck::LibcMemoryCallsOnNonTrivialTypesCheck( StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), MemSetNames(Options.get("MemSetNames", "")), MemCpyNames(Options.get("MemCpyNames", "")), MemCmpNames(Options.get("MemCmpNames", "")) {} -void NonTrivialTypesLibcMemoryCallsCheck::storeOptions( +void LibcMemoryCallsOnNonTrivialTypesCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "MemSetNames", MemSetNames); Options.store(Opts, "MemCpyNames", MemCpyNames); Options.store(Opts, "MemCmpNames", MemCmpNames); } -void NonTrivialTypesLibcMemoryCallsCheck::registerMatchers( +void LibcMemoryCallsOnNonTrivialTypesCheck::registerMatchers( MatchFinder *Finder) { using namespace ast_matchers::internal; auto IsStructPointer = [](Matcher<CXXRecordDecl> Constraint = anything(), @@ -103,7 +103,7 @@ void NonTrivialTypesLibcMemoryCallsCheck::registerMatchers( this); } -void NonTrivialTypesLibcMemoryCallsCheck::check( +void LibcMemoryCallsOnNonTrivialTypesCheck::check( const MatchFinder::MatchResult &Result) { if (const auto *Caller = Result.Nodes.getNodeAs<CallExpr>("lazyConstruct")) { diag(Caller->getBeginLoc(), "calling %0 on a non-trivially default " @@ -122,4 +122,4 @@ void NonTrivialTypesLibcMemoryCallsCheck::check( } } -} // namespace clang::tidy::cert +} // namespace clang::tidy::bugprone diff --git a/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.h b/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h similarity index 66% rename from clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.h rename to clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h index 4589ce444c878..c71796eb80226 100644 --- a/clang-tools-extra/clang-tidy/cert/NonTrivialTypesLibcMemoryCallsCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h @@ -6,21 +6,21 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H -#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H #include "../ClangTidyCheck.h" -namespace clang::tidy::cert { +namespace clang::tidy::bugprone { /// Flags use of the `C` standard library functions 'memset', 'memcpy' and /// 'memcmp' and similar derivatives on non-trivial types. /// /// For the user-facing documentation see: -/// https://clang.llvm.org/extra/clang-tidy/checks/cert/oop57-cpp.html -class NonTrivialTypesLibcMemoryCallsCheck : public ClangTidyCheck { +/// https://clang.llvm.org/extra/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.html +class LibcMemoryCallsOnNonTrivialTypesCheck : public ClangTidyCheck { public: - NonTrivialTypesLibcMemoryCallsCheck(StringRef Name, + LibcMemoryCallsOnNonTrivialTypesCheck(StringRef Name, ClangTidyContext *Context); bool isLanguageVersionSupported(const LangOptions &LangOpts) const override { return LangOpts.CPlusPlus && !LangOpts.ObjC; @@ -35,6 +35,6 @@ class NonTrivialTypesLibcMemoryCallsCheck : public ClangTidyCheck { const StringRef MemCmpNames; }; -} // namespace clang::tidy::cert +} // namespace clang::tidy::bugprone -#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H +#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H diff --git a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp index c1ca2cec7a1eb..decc228e57611 100644 --- a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp @@ -11,6 +11,7 @@ #include "../ClangTidyModuleRegistry.h" #include "../bugprone/BadSignalToKillThreadCheck.h" #include "../bugprone/CommandProcessorCheck.h" +#include "../bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h" #include "../bugprone/PointerArithmeticOnPolymorphicObjectCheck.h" #include "../bugprone/ReservedIdentifierCheck.h" #include "../bugprone/SignalHandlerCheck.h" @@ -39,7 +40,6 @@ #include "FloatLoopCounter.h" #include "LimitedRandomnessCheck.h" #include "MutatingCopyCheck.h" -#include "NonTrivialTypesLibcMemoryCallsCheck.h" #include "ProperlySeededRandomGeneratorCheck.h" #include "ThrownExceptionTypeCheck.h" @@ -278,7 +278,7 @@ class CERTModule : public ClangTidyModule { "cert-oop11-cpp"); CheckFactories.registerCheck<bugprone::UnhandledSelfAssignmentCheck>( "cert-oop54-cpp"); - CheckFactories.registerCheck<NonTrivialTypesLibcMemoryCallsCheck>( + CheckFactories.registerCheck<bugprone::LibcMemoryCallsOnNonTrivialTypesCheck>( "cert-oop57-cpp"); CheckFactories.registerCheck<MutatingCopyCheck>("cert-oop58-cpp"); diff --git a/clang-tools-extra/clang-tidy/cert/CMakeLists.txt b/clang-tools-extra/clang-tidy/cert/CMakeLists.txt index 453d1d30921e9..ce57faadcf749 100644 --- a/clang-tools-extra/clang-tidy/cert/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/cert/CMakeLists.txt @@ -10,7 +10,6 @@ add_clang_library(clangTidyCERTModule STATIC FloatLoopCounter.cpp LimitedRandomnessCheck.cpp MutatingCopyCheck.cpp - NonTrivialTypesLibcMemoryCallsCheck.cpp ProperlySeededRandomGeneratorCheck.cpp ThrownExceptionTypeCheck.cpp diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 7e836a7114d50..91f15bf152cb4 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -241,6 +241,11 @@ New check aliases <clang-tidy/checks/bugprone/throwing-static-initialization>` keeping initial check as an alias to the new one. +- Renamed :doc:`cert-oop57-cpp <clang-tidy/checks/cert/oop57-cpp>` to + :doc:`bugprone-libc-memory-calls-on-nontrivial-types + <clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types>` + keeping initial check as an alias to the new one. + Changes in existing checks ^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst b/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst new file mode 100644 index 0000000000000..9be8f44bd9dd0 --- /dev/null +++ b/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst @@ -0,0 +1,40 @@ +.. title:: clang-tidy - bugprone-libc-memory-calls-on-nontrivial-types + +bugprone-libc-memory-calls-on-nontrivial-types +============== + + Flags use of the `C` standard library functions ``memset``, ``memcpy`` and + ``memcmp`` and similar derivatives on non-trivial types. + +Options +------- + +.. option:: MemSetNames + + Specify extra functions to flag that act similarly to ``memset``. + Specify names in a semicolon delimited list. + Default is an empty string. + The check will detect the following functions: + `memset`, `std::memset`. + +.. option:: MemCpyNames + + Specify extra functions to flag that act similarly to ``memcpy``. + Specify names in a semicolon delimited list. + Default is an empty string. + The check will detect the following functions: + `std::memcpy`, `memcpy`, `std::memmove`, `memmove`, `std::strcpy`, + `strcpy`, `memccpy`, `stpncpy`, `strncpy`. + +.. option:: MemCmpNames + + Specify extra functions to flag that act similarly to ``memcmp``. + Specify names in a semicolon delimited list. + Default is an empty string. + The check will detect the following functions: + `std::memcmp`, `memcmp`, `std::strcmp`, `strcmp`, `strncmp`. + +This check corresponds to the CERT C++ Coding Standard rule +`OOP57-CPP. Prefer special member functions and overloaded operators to C +Standard Library functions +<https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP57-CPP.+Prefer+special+member+functions+and+overloaded+operators+to+C+Standard+Library+functions>`_. diff --git a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst index 4787abf1554ab..d504adfa8c2b4 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst @@ -1,40 +1,10 @@ .. title:: clang-tidy - cert-oop57-cpp +.. meta:: + :http-equiv=refresh: 5;URL=../bugprone/libc-memory-calls-on-nontrivial-types.html cert-oop57-cpp ============== - Flags use of the `C` standard library functions ``memset``, ``memcpy`` and - ``memcmp`` and similar derivatives on non-trivial types. - -Options -------- - -.. option:: MemSetNames - - Specify extra functions to flag that act similarly to ``memset``. - Specify names in a semicolon delimited list. - Default is an empty string. - The check will detect the following functions: - `memset`, `std::memset`. - -.. option:: MemCpyNames - - Specify extra functions to flag that act similarly to ``memcpy``. - Specify names in a semicolon delimited list. - Default is an empty string. - The check will detect the following functions: - `std::memcpy`, `memcpy`, `std::memmove`, `memmove`, `std::strcpy`, - `strcpy`, `memccpy`, `stpncpy`, `strncpy`. - -.. option:: MemCmpNames - - Specify extra functions to flag that act similarly to ``memcmp``. - Specify names in a semicolon delimited list. - Default is an empty string. - The check will detect the following functions: - `std::memcmp`, `memcmp`, `std::strcmp`, `strcmp`, `strncmp`. - -This check corresponds to the CERT C++ Coding Standard rule -`OOP57-CPP. Prefer special member functions and overloaded operators to C -Standard Library functions -<https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP57-CPP.+Prefer+special+member+functions+and+overloaded+operators+to+C+Standard+Library+functions>`_. +The cert-oop57-cpp check is an alias, please see +`bugprone-libc-memory-calls-on-nontrivial-types <../bugprone/libc-memory-calls-on-nontrivial-types.html>`_ +for more information. \ No newline at end of file diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst index f94696d4ef9c7..07045dd244770 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/list.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -125,6 +125,7 @@ Clang-Tidy Checks :doc:`bugprone-non-zero-enum-to-bool-conversion <bugprone/non-zero-enum-to-bool-conversion>`, :doc:`bugprone-nondeterministic-pointer-iteration-order <bugprone/nondeterministic-pointer-iteration-order>`, :doc:`bugprone-not-null-terminated-result <bugprone/not-null-terminated-result>`, "Yes" + :doc:`bugprone-libc-memory-calls-on-nontrivial-types <bugprone/libc-memory-calls-on-nontrivial-types>`, :doc:`bugprone-optional-value-conversion <bugprone/optional-value-conversion>`, "Yes" :doc:`bugprone-parent-virtual-call <bugprone/parent-virtual-call>`, "Yes" :doc:`bugprone-pointer-arithmetic-on-polymorphic-object <bugprone/pointer-arithmetic-on-polymorphic-object>`, @@ -180,7 +181,6 @@ Clang-Tidy Checks :doc:`cert-mem57-cpp <cert/mem57-cpp>`, :doc:`cert-msc50-cpp <cert/msc50-cpp>`, :doc:`cert-msc51-cpp <cert/msc51-cpp>`, - :doc:`cert-oop57-cpp <cert/oop57-cpp>`, :doc:`cert-oop58-cpp <cert/oop58-cpp>`, :doc:`concurrency-mt-unsafe <concurrency/mt-unsafe>`, :doc:`concurrency-thread-canceltype-asynchronous <concurrency/thread-canceltype-asynchronous>`, @@ -440,8 +440,8 @@ Check aliases :doc:`cert-dcl51-cpp <cert/dcl51-cpp>`, :doc:`bugprone-reserved-identifier <bugprone/reserved-identifier>`, "Yes" :doc:`cert-dcl54-cpp <cert/dcl54-cpp>`, :doc:`misc-new-delete-overloads <misc/new-delete-overloads>`, :doc:`cert-dcl59-cpp <cert/dcl59-cpp>`, :doc:`google-build-namespaces <google/build-namespaces>`, - :doc:`cert-err09-cpp <cert/err09-cpp>`, :doc:`misc-throw-by-value-catch-by-reference <misc/throw-by-value-catch-by-reference>`, :doc:`cert-env33-c <cert/env33-c>`, :doc:`bugprone-command-processor <bugprone/command-processor>`, + :doc:`cert-err09-cpp <cert/err09-cpp>`, :doc:`misc-throw-by-value-catch-by-reference <misc/throw-by-value-catch-by-reference>`, :doc:`cert-err34-c <cert/err34-c>`, :doc:`bugprone-unchecked-string-to-number-conversion <bugprone/unchecked-string-to-number-conversion>`, :doc:`cert-err52-cpp <cert/err52-cpp>`, :doc:`modernize-avoid-setjmp-longjmp <modernize/avoid-setjmp-longjmp>`, :doc:`cert-err58-cpp <cert/err58-cpp>`, :doc:`bugprone-throwing-static-initialization <bugprone/throwing-static-initialization>`, @@ -457,6 +457,7 @@ Check aliases :doc:`cert-msc54-cpp <cert/msc54-cpp>`, :doc:`bugprone-signal-handler <bugprone/signal-handler>`, :doc:`cert-oop11-cpp <cert/oop11-cpp>`, :doc:`performance-move-constructor-init <performance/move-constructor-init>`, :doc:`cert-oop54-cpp <cert/oop54-cpp>`, :doc:`bugprone-unhandled-self-assignment <bugprone/unhandled-self-assignment>`, + :doc:`cert-oop57-cpp <cert/oop57-cpp>`, :doc:`bugprone-libc-memory-calls-on-nontrivial-types <bugprone/libc-memory-calls-on-nontrivial-types>`, :doc:`cert-pos44-c <cert/pos44-c>`, :doc:`bugprone-bad-signal-to-kill-thread <bugprone/bad-signal-to-kill-thread>`, :doc:`cert-pos47-c <cert/pos47-c>`, :doc:`concurrency-thread-canceltype-asynchronous <concurrency/thread-canceltype-asynchronous>`, :doc:`cert-sig30-c <cert/sig30-c>`, :doc:`bugprone-signal-handler <bugprone/signal-handler>`, diff --git a/clang-tools-extra/test/clang-tidy/checkers/cert/oop57-cpp.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/libc-memory-calls-on-nontrivial-types.cpp similarity index 93% rename from clang-tools-extra/test/clang-tidy/checkers/cert/oop57-cpp.cpp rename to clang-tools-extra/test/clang-tidy/checkers/bugprone/libc-memory-calls-on-nontrivial-types.cpp index e34315fc98d25..8eac7e440a17e 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/cert/oop57-cpp.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/libc-memory-calls-on-nontrivial-types.cpp @@ -1,8 +1,8 @@ -// RUN: %check_clang_tidy %s cert-oop57-cpp %t -- \ +// RUN: %check_clang_tidy %s libc-memory-calls-on-nontrivial-types %t -- \ // RUN: -config='{CheckOptions: \ -// RUN: {cert-oop57-cpp.MemSetNames: mymemset, \ -// RUN: cert-oop57-cpp.MemCpyNames: mymemcpy, \ -// RUN: cert-oop57-cpp.MemCmpNames: mymemcmp}}' \ +// RUN: {libc-memory-calls-on-nontrivial-types.MemSetNames: mymemset, \ +// RUN: libc-memory-calls-on-nontrivial-types.MemCpyNames: mymemcpy, \ +// RUN: libc-memory-calls-on-nontrivial-types.MemCmpNames: mymemcmp}}' \ // RUN: -- void mymemset(void *, unsigned char, decltype(sizeof(int))); >From 292cafb6fa81c663554a871e3ef2ce3adffb956f Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Mon, 6 Oct 2025 11:49:07 -0700 Subject: [PATCH 02/10] Update clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst Co-authored-by: EugeneZelenko <[email protected]> --- .../checks/bugprone/libc-memory-calls-on-nontrivial-types.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst b/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst index 9be8f44bd9dd0..dd881a83dab53 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst @@ -15,7 +15,7 @@ Options Specify names in a semicolon delimited list. Default is an empty string. The check will detect the following functions: - `memset`, `std::memset`. + ``memset``, ``std::memset``. .. option:: MemCpyNames >From a928e61df64593cd01eeecd8dfb9390be6aaf1ce Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Mon, 6 Oct 2025 12:09:38 -0700 Subject: [PATCH 03/10] Format function names properly --- .../bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h | 2 +- .../bugprone/libc-memory-calls-on-nontrivial-types.rst | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h b/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h index c71796eb80226..f81a53a1aacc9 100644 --- a/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h @@ -13,7 +13,7 @@ namespace clang::tidy::bugprone { -/// Flags use of the `C` standard library functions 'memset', 'memcpy' and +/// Flags use of the C standard library functions 'memset', 'memcpy' and /// 'memcmp' and similar derivatives on non-trivial types. /// /// For the user-facing documentation see: diff --git a/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst b/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst index dd881a83dab53..2c8fd7bf0451f 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst @@ -1,9 +1,9 @@ .. title:: clang-tidy - bugprone-libc-memory-calls-on-nontrivial-types bugprone-libc-memory-calls-on-nontrivial-types -============== +============================================== - Flags use of the `C` standard library functions ``memset``, ``memcpy`` and + Flags use of the C standard library functions ``memset``, ``memcpy`` and ``memcmp`` and similar derivatives on non-trivial types. Options @@ -23,8 +23,8 @@ Options Specify names in a semicolon delimited list. Default is an empty string. The check will detect the following functions: - `std::memcpy`, `memcpy`, `std::memmove`, `memmove`, `std::strcpy`, - `strcpy`, `memccpy`, `stpncpy`, `strncpy`. + `std::memcpy`, ``memcpy`, `std::memmove`, ``memmove``, ``std::strcpy``, + ``strcpy``, ``memccpy``, ``stpncpy``, ``strncpy``. .. option:: MemCmpNames @@ -32,7 +32,7 @@ Options Specify names in a semicolon delimited list. Default is an empty string. The check will detect the following functions: - `std::memcmp`, `memcmp`, `std::strcmp`, `strcmp`, `strncmp`. + ``std::memcmp``, ``memcmp``, ``std::strcmp``, ``strcmp``, ``strncmp``. This check corresponds to the CERT C++ Coding Standard rule `OOP57-CPP. Prefer special member functions and overloaded operators to C >From d0ba4b3f990f51ba1b1d1af89f0b9c6506fa7db4 Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 19 Oct 2025 21:50:57 -0700 Subject: [PATCH 04/10] Update clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst Co-authored-by: Baranov Victor <[email protected]> --- clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst index d504adfa8c2b4..d6f4fa34a2a95 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst @@ -5,6 +5,6 @@ cert-oop57-cpp ============== -The cert-oop57-cpp check is an alias, please see +The `cert-oop57-cpp` check is an alias, please see `bugprone-libc-memory-calls-on-nontrivial-types <../bugprone/libc-memory-calls-on-nontrivial-types.html>`_ for more information. \ No newline at end of file >From 95fd6b56898f07a0578f788007b4fe29e42d8369 Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 19 Oct 2025 21:57:02 -0700 Subject: [PATCH 05/10] Update clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst Co-authored-by: Baranov Victor <[email protected]> --- .../docs/clang-tidy/checks/cert/oop57-cpp.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst index d6f4fa34a2a95..c0ddf854bb67b 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst @@ -7,4 +7,9 @@ cert-oop57-cpp The `cert-oop57-cpp` check is an alias, please see `bugprone-libc-memory-calls-on-nontrivial-types <../bugprone/libc-memory-calls-on-nontrivial-types.html>`_ -for more information. \ No newline at end of file +for more information. + +This check corresponds to the CERT C++ Coding Standard rule +`OOP57-CPP. Prefer special member functions and overloaded operators to C +Standard Library functions +<https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP57-CPP.+Prefer+special+member+functions+and+overloaded+operators+to+C+Standard+Library+functions>`_. \ No newline at end of file >From f590f55e5876d2ceb899eccefd95e66996676a8a Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 19 Oct 2025 22:02:58 -0700 Subject: [PATCH 06/10] Add new line --- clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst index c0ddf854bb67b..fadac08299ed7 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst @@ -12,4 +12,4 @@ for more information. This check corresponds to the CERT C++ Coding Standard rule `OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions -<https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP57-CPP.+Prefer+special+member+functions+and+overloaded+operators+to+C+Standard+Library+functions>`_. \ No newline at end of file +<https://wiki.sei.cmu.edu/confluence/display/cplusplus/OOP57-CPP.+Prefer+special+member+functions+and+overloaded+operators+to+C+Standard+Library+functions>`_. >From 57a35837db417243a311c0abeaa286cddac2005b Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 19 Oct 2025 22:15:43 -0700 Subject: [PATCH 07/10] Rename to check to raw-memory-call-on-nontrivial-type --- ...alTypesCheck.cpp => RawMemoryCallOnNonTrivialType.cpp} | 0 ...rivialTypesCheck.h => RawMemoryCallOnNonTrivialType.h} | 2 +- clang-tools-extra/docs/ReleaseNotes.rst | 4 ++-- ...l-types.rst => raw-memory-call-on-nontrivial-type.rst} | 4 ++-- .../docs/clang-tidy/checks/cert/oop57-cpp.rst | 4 ++-- clang-tools-extra/docs/clang-tidy/checks/list.rst | 4 ++-- ...l-types.cpp => raw-memory-call-on-nontrivial-type.cpp} | 8 ++++---- 7 files changed, 13 insertions(+), 13 deletions(-) rename clang-tools-extra/clang-tidy/bugprone/{LibcMemoryCallsOnNonTrivialTypesCheck.cpp => RawMemoryCallOnNonTrivialType.cpp} (100%) rename clang-tools-extra/clang-tidy/bugprone/{LibcMemoryCallsOnNonTrivialTypesCheck.h => RawMemoryCallOnNonTrivialType.h} (93%) rename clang-tools-extra/docs/clang-tidy/checks/bugprone/{libc-memory-calls-on-nontrivial-types.rst => raw-memory-call-on-nontrivial-type.rst} (92%) rename clang-tools-extra/test/clang-tidy/checkers/bugprone/{libc-memory-calls-on-nontrivial-types.cpp => raw-memory-call-on-nontrivial-type.cpp} (93%) diff --git a/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.cpp similarity index 100% rename from clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.cpp rename to clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.cpp diff --git a/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h similarity index 93% rename from clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h rename to clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h index f81a53a1aacc9..fb00e6392e232 100644 --- a/clang-tools-extra/clang-tidy/bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h +++ b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h @@ -17,7 +17,7 @@ namespace clang::tidy::bugprone { /// 'memcmp' and similar derivatives on non-trivial types. /// /// For the user-facing documentation see: -/// https://clang.llvm.org/extra/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.html +/// https://clang.llvm.org/extra/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.html class LibcMemoryCallsOnNonTrivialTypesCheck : public ClangTidyCheck { public: LibcMemoryCallsOnNonTrivialTypesCheck(StringRef Name, diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index 91f15bf152cb4..f981010828540 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -242,8 +242,8 @@ New check aliases keeping initial check as an alias to the new one. - Renamed :doc:`cert-oop57-cpp <clang-tidy/checks/cert/oop57-cpp>` to - :doc:`bugprone-libc-memory-calls-on-nontrivial-types - <clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types>` + :doc:`bugprone-raw-memory-call-on-nontrivial-type + <clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type>` keeping initial check as an alias to the new one. Changes in existing checks diff --git a/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst b/clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.rst similarity index 92% rename from clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst rename to clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.rst index 2c8fd7bf0451f..b68eabe74ce2e 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/bugprone/libc-memory-calls-on-nontrivial-types.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.rst @@ -1,6 +1,6 @@ -.. title:: clang-tidy - bugprone-libc-memory-calls-on-nontrivial-types +.. title:: clang-tidy - bugprone-raw-memory-call-on-nontrivial-type -bugprone-libc-memory-calls-on-nontrivial-types +bugprone-raw-memory-call-on-nontrivial-type ============================================== Flags use of the C standard library functions ``memset``, ``memcpy`` and diff --git a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst index fadac08299ed7..4426ee244ef9d 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/cert/oop57-cpp.rst @@ -1,12 +1,12 @@ .. title:: clang-tidy - cert-oop57-cpp .. meta:: - :http-equiv=refresh: 5;URL=../bugprone/libc-memory-calls-on-nontrivial-types.html + :http-equiv=refresh: 5;URL=../bugprone/raw-memory-call-on-nontrivial-type.html cert-oop57-cpp ============== The `cert-oop57-cpp` check is an alias, please see -`bugprone-libc-memory-calls-on-nontrivial-types <../bugprone/libc-memory-calls-on-nontrivial-types.html>`_ +`bugprone-raw-memory-call-on-nontrivial-type <../bugprone/raw-memory-call-on-nontrivial-type.html>`_ for more information. This check corresponds to the CERT C++ Coding Standard rule diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst index 07045dd244770..ae410cb04821f 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/list.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -125,7 +125,7 @@ Clang-Tidy Checks :doc:`bugprone-non-zero-enum-to-bool-conversion <bugprone/non-zero-enum-to-bool-conversion>`, :doc:`bugprone-nondeterministic-pointer-iteration-order <bugprone/nondeterministic-pointer-iteration-order>`, :doc:`bugprone-not-null-terminated-result <bugprone/not-null-terminated-result>`, "Yes" - :doc:`bugprone-libc-memory-calls-on-nontrivial-types <bugprone/libc-memory-calls-on-nontrivial-types>`, + :doc:`bugprone-raw-memory-call-on-nontrivial-type <bugprone/raw-memory-call-on-nontrivial-type>`, :doc:`bugprone-optional-value-conversion <bugprone/optional-value-conversion>`, "Yes" :doc:`bugprone-parent-virtual-call <bugprone/parent-virtual-call>`, "Yes" :doc:`bugprone-pointer-arithmetic-on-polymorphic-object <bugprone/pointer-arithmetic-on-polymorphic-object>`, @@ -457,7 +457,7 @@ Check aliases :doc:`cert-msc54-cpp <cert/msc54-cpp>`, :doc:`bugprone-signal-handler <bugprone/signal-handler>`, :doc:`cert-oop11-cpp <cert/oop11-cpp>`, :doc:`performance-move-constructor-init <performance/move-constructor-init>`, :doc:`cert-oop54-cpp <cert/oop54-cpp>`, :doc:`bugprone-unhandled-self-assignment <bugprone/unhandled-self-assignment>`, - :doc:`cert-oop57-cpp <cert/oop57-cpp>`, :doc:`bugprone-libc-memory-calls-on-nontrivial-types <bugprone/libc-memory-calls-on-nontrivial-types>`, + :doc:`cert-oop57-cpp <cert/oop57-cpp>`, :doc:`bugprone-raw-memory-call-on-nontrivial-type <bugprone/raw-memory-call-on-nontrivial-type>`, :doc:`cert-pos44-c <cert/pos44-c>`, :doc:`bugprone-bad-signal-to-kill-thread <bugprone/bad-signal-to-kill-thread>`, :doc:`cert-pos47-c <cert/pos47-c>`, :doc:`concurrency-thread-canceltype-asynchronous <concurrency/thread-canceltype-asynchronous>`, :doc:`cert-sig30-c <cert/sig30-c>`, :doc:`bugprone-signal-handler <bugprone/signal-handler>`, diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone/libc-memory-calls-on-nontrivial-types.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/raw-memory-call-on-nontrivial-type.cpp similarity index 93% rename from clang-tools-extra/test/clang-tidy/checkers/bugprone/libc-memory-calls-on-nontrivial-types.cpp rename to clang-tools-extra/test/clang-tidy/checkers/bugprone/raw-memory-call-on-nontrivial-type.cpp index 8eac7e440a17e..266d4baccd2e8 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone/libc-memory-calls-on-nontrivial-types.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/raw-memory-call-on-nontrivial-type.cpp @@ -1,8 +1,8 @@ -// RUN: %check_clang_tidy %s libc-memory-calls-on-nontrivial-types %t -- \ +// RUN: %check_clang_tidy %s raw-memory-call-on-nontrivial-type %t -- \ // RUN: -config='{CheckOptions: \ -// RUN: {libc-memory-calls-on-nontrivial-types.MemSetNames: mymemset, \ -// RUN: libc-memory-calls-on-nontrivial-types.MemCpyNames: mymemcpy, \ -// RUN: libc-memory-calls-on-nontrivial-types.MemCmpNames: mymemcmp}}' \ +// RUN: {raw-memory-call-on-nontrivial-type.MemSetNames: mymemset, \ +// RUN: raw-memory-call-on-nontrivial-type.MemCpyNames: mymemcpy, \ +// RUN: raw-memory-call-on-nontrivial-type.MemCmpNames: mymemcmp}}' \ // RUN: -- void mymemset(void *, unsigned char, decltype(sizeof(int))); >From 1e01e2c07f3d54263a4e103e02d7975c91db9e6d Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 19 Oct 2025 22:21:41 -0700 Subject: [PATCH 08/10] Rename more references to new check name --- clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt | 2 +- .../bugprone/RawMemoryCallOnNonTrivialType.cpp | 10 +++++----- .../bugprone/RawMemoryCallOnNonTrivialType.h | 4 ++-- clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt index f5b8c71da833a..2130844eddd7a 100644 --- a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt @@ -43,7 +43,7 @@ add_clang_library(clangTidyBugproneModule STATIC InfiniteLoopCheck.cpp IntegerDivisionCheck.cpp LambdaFunctionNameCheck.cpp - LibcMemoryCallsOnNonTrivialTypesCheck.cpp + RawMemoryCallOnNontrivialTypeCheck.cpp MacroParenthesesCheck.cpp MacroRepeatedSideEffectsCheck.cpp MisleadingSetterOfReferenceCheck.cpp diff --git a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.cpp b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.cpp index 5127611b191d9..68e96cce9a6a7 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.cpp @@ -6,7 +6,7 @@ // //===----------------------------------------------------------------------===// -#include "LibcMemoryCallsOnNonTrivialTypesCheck.h" +#include "RawMemoryCallOnNontrivialTypeCheck.h" #include "../utils/OptionsUtils.h" #include "clang/AST/Decl.h" #include "clang/ASTMatchers/ASTMatchFinder.h" @@ -48,21 +48,21 @@ static constexpr llvm::StringRef ComparisonOperators[] = { "operator==", "operator!=", "operator<", "operator>", "operator<=", "operator>="}; -LibcMemoryCallsOnNonTrivialTypesCheck::LibcMemoryCallsOnNonTrivialTypesCheck( +RawMemoryCallOnNontrivialTypeCheck::RawMemoryCallOnNontrivialTypeCheck( StringRef Name, ClangTidyContext *Context) : ClangTidyCheck(Name, Context), MemSetNames(Options.get("MemSetNames", "")), MemCpyNames(Options.get("MemCpyNames", "")), MemCmpNames(Options.get("MemCmpNames", "")) {} -void LibcMemoryCallsOnNonTrivialTypesCheck::storeOptions( +void RawMemoryCallOnNontrivialTypeCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { Options.store(Opts, "MemSetNames", MemSetNames); Options.store(Opts, "MemCpyNames", MemCpyNames); Options.store(Opts, "MemCmpNames", MemCmpNames); } -void LibcMemoryCallsOnNonTrivialTypesCheck::registerMatchers( +void RawMemoryCallOnNontrivialTypeCheck::registerMatchers( MatchFinder *Finder) { using namespace ast_matchers::internal; auto IsStructPointer = [](Matcher<CXXRecordDecl> Constraint = anything(), @@ -103,7 +103,7 @@ void LibcMemoryCallsOnNonTrivialTypesCheck::registerMatchers( this); } -void LibcMemoryCallsOnNonTrivialTypesCheck::check( +void RawMemoryCallOnNontrivialTypeCheck::check( const MatchFinder::MatchResult &Result) { if (const auto *Caller = Result.Nodes.getNodeAs<CallExpr>("lazyConstruct")) { diag(Caller->getBeginLoc(), "calling %0 on a non-trivially default " diff --git a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h index fb00e6392e232..c4e4336515c21 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h +++ b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h @@ -18,9 +18,9 @@ namespace clang::tidy::bugprone { /// /// For the user-facing documentation see: /// https://clang.llvm.org/extra/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.html -class LibcMemoryCallsOnNonTrivialTypesCheck : public ClangTidyCheck { +class RawMemoryCallOnNontrivialTypeCheck : public ClangTidyCheck { public: - LibcMemoryCallsOnNonTrivialTypesCheck(StringRef Name, + RawMemoryCallOnNontrivialTypeCheck(StringRef Name, ClangTidyContext *Context); bool isLanguageVersionSupported(const LangOptions &LangOpts) const override { return LangOpts.CPlusPlus && !LangOpts.ObjC; diff --git a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp index decc228e57611..2d39a468d2801 100644 --- a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp @@ -11,7 +11,7 @@ #include "../ClangTidyModuleRegistry.h" #include "../bugprone/BadSignalToKillThreadCheck.h" #include "../bugprone/CommandProcessorCheck.h" -#include "../bugprone/LibcMemoryCallsOnNonTrivialTypesCheck.h" +#include "../bugprone/RawMemoryCallOnNontrivialTypeCheck.h" #include "../bugprone/PointerArithmeticOnPolymorphicObjectCheck.h" #include "../bugprone/ReservedIdentifierCheck.h" #include "../bugprone/SignalHandlerCheck.h" @@ -278,7 +278,7 @@ class CERTModule : public ClangTidyModule { "cert-oop11-cpp"); CheckFactories.registerCheck<bugprone::UnhandledSelfAssignmentCheck>( "cert-oop54-cpp"); - CheckFactories.registerCheck<bugprone::LibcMemoryCallsOnNonTrivialTypesCheck>( + CheckFactories.registerCheck<bugprone::RawMemoryCallOnNontrivialTypeCheck>( "cert-oop57-cpp"); CheckFactories.registerCheck<MutatingCopyCheck>("cert-oop58-cpp"); >From ad1afc42ec42a0b5a978f79a2fc097f93b862b4a Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 19 Oct 2025 22:22:54 -0700 Subject: [PATCH 09/10] Update title formatting for raw-memory-call check --- .../checks/bugprone/raw-memory-call-on-nontrivial-type.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.rst b/clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.rst index b68eabe74ce2e..049ac61aba5e5 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/bugprone/raw-memory-call-on-nontrivial-type.rst @@ -1,7 +1,7 @@ .. title:: clang-tidy - bugprone-raw-memory-call-on-nontrivial-type bugprone-raw-memory-call-on-nontrivial-type -============================================== +=========================================== Flags use of the C standard library functions ``memset``, ``memcpy`` and ``memcmp`` and similar derivatives on non-trivial types. >From 691131b7fbf7ea08b23b02ca2c04ee582ab8cbe2 Mon Sep 17 00:00:00 2001 From: Dasha Buka <[email protected]> Date: Sun, 19 Oct 2025 22:41:15 -0700 Subject: [PATCH 10/10] Rename last reference to RAWMEMORYCALLONNONTRIVIALTYPE --- .../clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h index c4e4336515c21..189dbc439edde 100644 --- a/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h +++ b/clang-tools-extra/clang-tidy/bugprone/RawMemoryCallOnNonTrivialType.h @@ -6,8 +6,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H -#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_RAWMEMORYCALLONNONTRIVIALTYPECHECK_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_RAWMEMORYCALLONNONTRIVIALTYPECHECK_H #include "../ClangTidyCheck.h" @@ -37,4 +37,4 @@ class RawMemoryCallOnNontrivialTypeCheck : public ClangTidyCheck { } // namespace clang::tidy::bugprone -#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_NONTRIVIALTYPESLIBCMEMORYCALLSCHECK_H +#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_RAWMEMORYCALLONNONTRIVIALTYPECHECK_H _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
