Author: luobochuanqi
Date: 2025-11-10T19:47:01+03:00
New Revision: 315d705b76089dfd29325637f820c2aa0eec0fe3

URL: 
https://github.com/llvm/llvm-project/commit/315d705b76089dfd29325637f820c2aa0eec0fe3
DIFF: 
https://github.com/llvm/llvm-project/commit/315d705b76089dfd29325637f820c2aa0eec0fe3.diff

LOG: [clang-tidy] Move 'cert-msc51-cpp', 'cert-msc32-c' checks outside of 
'cert' module and give a proper name (#167143)

…'cert' module and give a proper name

Summary:
This change addresses sub-issue #157296 of parent issue #157287, which
aims to clean up the `cert` module by moving checks that don't directly
map to CERT security standards to more appropriate modules.

The checks `cert-msc51-cpp` and `cert-msc32-c` both implement the same
logic to detect random number generators that are not properly seeded.
This is a generic bug pattern rather than a CERT-specific security
constraint, making it more suitable for the `bugprone` module.

Closes: #157296

---------

Co-authored-by: Baranov Victor <[email protected]>

Added: 
    clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp
    clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.h
    clang-tools-extra/docs/clang-tidy/checks/bugprone/random-generator-seed.rst
    clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.c
    
clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.cpp

Modified: 
    clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
    clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
    clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
    clang-tools-extra/clang-tidy/cert/CMakeLists.txt
    clang-tools-extra/docs/ReleaseNotes.rst
    clang-tools-extra/docs/clang-tidy/checks/cert/msc32-c.rst
    clang-tools-extra/docs/clang-tidy/checks/cert/msc51-cpp.rst
    clang-tools-extra/docs/clang-tidy/checks/list.rst

Removed: 
    clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp
    clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.h
    clang-tools-extra/test/clang-tidy/checkers/cert/msc32-c.c
    clang-tools-extra/test/clang-tidy/checkers/cert/msc51-cpp.cpp


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp 
b/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
index 3ba1532334e4a..6859dc97c112a 100644
--- a/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
@@ -65,6 +65,7 @@
 #include "ParentVirtualCallCheck.h"
 #include "PointerArithmeticOnPolymorphicObjectCheck.h"
 #include "PosixReturnCheck.h"
+#include "RandomGeneratorSeedCheck.h"
 #include "RawMemoryCallOnNonTrivialTypeCheck.h"
 #include "RedundantBranchConditionCheck.h"
 #include "ReservedIdentifierCheck.h"
@@ -230,6 +231,8 @@ class BugproneModule : public ClangTidyModule {
     CheckFactories.registerCheck<ParentVirtualCallCheck>(
         "bugprone-parent-virtual-call");
     CheckFactories.registerCheck<PosixReturnCheck>("bugprone-posix-return");
+    CheckFactories.registerCheck<RandomGeneratorSeedCheck>(
+        "bugprone-random-generator-seed");
     CheckFactories.registerCheck<RawMemoryCallOnNonTrivialTypeCheck>(
         "bugprone-raw-memory-call-on-non-trivial-type");
     CheckFactories.registerCheck<ReservedIdentifierCheck>(

diff  --git a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt 
b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
index 49c467aa5090c..db1256d91d311 100644
--- a/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
@@ -66,6 +66,7 @@ add_clang_library(clangTidyBugproneModule STATIC
   ParentVirtualCallCheck.cpp
   PointerArithmeticOnPolymorphicObjectCheck.cpp
   PosixReturnCheck.cpp
+  RandomGeneratorSeedCheck.cpp
   RawMemoryCallOnNonTrivialTypeCheck.cpp
   RedundantBranchConditionCheck.cpp
   ReservedIdentifierCheck.cpp

diff  --git 
a/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp 
b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp
similarity index 84%
rename from 
clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp
rename to clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp
index b8bca7286ce69..3e32e9b8a704c 100644
--- a/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.cpp
@@ -6,29 +6,28 @@
 //
 
//===----------------------------------------------------------------------===//
 
-#include "ProperlySeededRandomGeneratorCheck.h"
+#include "RandomGeneratorSeedCheck.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/ASTMatchers/ASTMatchFinder.h"
 #include "llvm/ADT/STLExtras.h"
 
 using namespace clang::ast_matchers;
 
-namespace clang::tidy::cert {
+namespace clang::tidy::bugprone {
 
-ProperlySeededRandomGeneratorCheck::ProperlySeededRandomGeneratorCheck(
-    StringRef Name, ClangTidyContext *Context)
+RandomGeneratorSeedCheck::RandomGeneratorSeedCheck(StringRef Name,
+                                                   ClangTidyContext *Context)
     : ClangTidyCheck(Name, Context),
       RawDisallowedSeedTypes(
           Options.get("DisallowedSeedTypes", "time_t,std::time_t")) {
   RawDisallowedSeedTypes.split(DisallowedSeedTypes, ',');
 }
 
-void ProperlySeededRandomGeneratorCheck::storeOptions(
-    ClangTidyOptions::OptionMap &Opts) {
+void RandomGeneratorSeedCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) 
{
   Options.store(Opts, "DisallowedSeedTypes", RawDisallowedSeedTypes);
 }
 
-void ProperlySeededRandomGeneratorCheck::registerMatchers(MatchFinder *Finder) 
{
+void RandomGeneratorSeedCheck::registerMatchers(MatchFinder *Finder) {
   auto RandomGeneratorEngineDecl = cxxRecordDecl(hasAnyName(
       "::std::linear_congruential_engine", "::std::mersenne_twister_engine",
       "::std::subtract_with_carry_engine", "::std::discard_block_engine",
@@ -75,8 +74,7 @@ void 
ProperlySeededRandomGeneratorCheck::registerMatchers(MatchFinder *Finder) {
       this);
 }
 
-void ProperlySeededRandomGeneratorCheck::check(
-    const MatchFinder::MatchResult &Result) {
+void RandomGeneratorSeedCheck::check(const MatchFinder::MatchResult &Result) {
   const auto *Ctor = Result.Nodes.getNodeAs<CXXConstructExpr>("ctor");
   if (Ctor)
     checkSeed(Result, Ctor);
@@ -91,8 +89,8 @@ void ProperlySeededRandomGeneratorCheck::check(
 }
 
 template <class T>
-void ProperlySeededRandomGeneratorCheck::checkSeed(
-    const MatchFinder::MatchResult &Result, const T *Func) {
+void RandomGeneratorSeedCheck::checkSeed(const MatchFinder::MatchResult 
&Result,
+                                         const T *Func) {
   if (Func->getNumArgs() == 0 || Func->getArg(0)->isDefaultArgument()) {
     diag(Func->getExprLoc(),
          "random number generator seeded with a default argument will generate 
"
@@ -118,4 +116,4 @@ void ProperlySeededRandomGeneratorCheck::checkSeed(
   }
 }
 
-} // namespace clang::tidy::cert
+} // namespace clang::tidy::bugprone

diff  --git 
a/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.h 
b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.h
similarity index 67%
rename from 
clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.h
rename to clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.h
index 8cb2e624e0501..c9c54eaa14000 100644
--- a/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.h
+++ b/clang-tools-extra/clang-tidy/bugprone/RandomGeneratorSeedCheck.h
@@ -6,13 +6,13 @@
 //
 
//===----------------------------------------------------------------------===//
 
-#ifndef 
LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_PROPERLYSEEDEDRANDOMGENERATORCHECK_H
-#define 
LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_PROPERLYSEEDEDRANDOMGENERATORCHECK_H
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_RANDOMGENERATORSEEDCHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_RANDOMGENERATORSEEDCHECK_H
 
 #include "../ClangTidyCheck.h"
 #include <string>
 
-namespace clang::tidy::cert {
+namespace clang::tidy::bugprone {
 
 /// Random number generator must be seeded properly.
 ///
@@ -20,10 +20,10 @@ namespace clang::tidy::cert {
 /// constant expression is a security vulnerability.
 ///
 /// For the user-facing documentation see:
-/// https://clang.llvm.org/extra/clang-tidy/checks/cert/msc51-cpp.html
-class ProperlySeededRandomGeneratorCheck : public ClangTidyCheck {
+/// 
https://clang.llvm.org/extra/clang-tidy/checks/bugprone/random-generator-seed.html
+class RandomGeneratorSeedCheck : public ClangTidyCheck {
 public:
-  ProperlySeededRandomGeneratorCheck(StringRef Name, ClangTidyContext 
*Context);
+  RandomGeneratorSeedCheck(StringRef Name, ClangTidyContext *Context);
   void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
@@ -37,6 +37,6 @@ class ProperlySeededRandomGeneratorCheck : public 
ClangTidyCheck {
   SmallVector<StringRef, 5> DisallowedSeedTypes;
 };
 
-} // namespace clang::tidy::cert
+} // namespace clang::tidy::bugprone
 
-#endif // 
LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CERT_PROPERLYSEEDEDRANDOMGENERATORCHECK_H
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_RANDOMGENERATORSEEDCHECK_H

diff  --git a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp 
b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
index 6dbcecee1e023..f46dd4cc6195a 100644
--- a/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
+++ b/clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
@@ -16,6 +16,7 @@
 #include "../bugprone/ExceptionCopyConstructorThrowsCheck.h"
 #include "../bugprone/FloatLoopCounterCheck.h"
 #include "../bugprone/PointerArithmeticOnPolymorphicObjectCheck.h"
+#include "../bugprone/RandomGeneratorSeedCheck.h"
 #include "../bugprone/RawMemoryCallOnNonTrivialTypeCheck.h"
 #include "../bugprone/ReservedIdentifierCheck.h"
 #include "../bugprone/SignalHandlerCheck.h"
@@ -41,7 +42,6 @@
 #include "../readability/EnumInitialValueCheck.h"
 #include "../readability/UppercaseLiteralSuffixCheck.h"
 #include "LimitedRandomnessCheck.h"
-#include "ProperlySeededRandomGeneratorCheck.h"
 
 namespace {
 
@@ -272,7 +272,7 @@ class CERTModule : public ClangTidyModule {
             "cert-mem57-cpp");
     // MSC
     CheckFactories.registerCheck<LimitedRandomnessCheck>("cert-msc50-cpp");
-    CheckFactories.registerCheck<ProperlySeededRandomGeneratorCheck>(
+    CheckFactories.registerCheck<bugprone::RandomGeneratorSeedCheck>(
         "cert-msc51-cpp");
     CheckFactories.registerCheck<bugprone::SignalHandlerCheck>(
         "cert-msc54-cpp");
@@ -325,7 +325,7 @@ class CERTModule : public ClangTidyModule {
     CheckFactories.registerCheck<bugprone::UnsafeFunctionsCheck>(
         "cert-msc24-c");
     CheckFactories.registerCheck<LimitedRandomnessCheck>("cert-msc30-c");
-    CheckFactories.registerCheck<ProperlySeededRandomGeneratorCheck>(
+    CheckFactories.registerCheck<bugprone::RandomGeneratorSeedCheck>(
         "cert-msc32-c");
     CheckFactories.registerCheck<bugprone::UnsafeFunctionsCheck>(
         "cert-msc33-c");

diff  --git a/clang-tools-extra/clang-tidy/cert/CMakeLists.txt 
b/clang-tools-extra/clang-tidy/cert/CMakeLists.txt
index 81015a02023ba..0ed903c4826a3 100644
--- a/clang-tools-extra/clang-tidy/cert/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/cert/CMakeLists.txt
@@ -6,7 +6,6 @@ set(LLVM_LINK_COMPONENTS
 add_clang_library(clangTidyCERTModule STATIC
   CERTTidyModule.cpp
   LimitedRandomnessCheck.cpp
-  ProperlySeededRandomGeneratorCheck.cpp
 
   LINK_LIBS
   clangTidy

diff  --git a/clang-tools-extra/docs/ReleaseNotes.rst 
b/clang-tools-extra/docs/ReleaseNotes.rst
index f3d5b6f43a227..2628a26acdf5e 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -283,6 +283,16 @@ New check aliases
   <clang-tidy/checks/bugprone/default-operator-new-on-overaligned-type>`
   keeping initial check as an alias to the new one.
 
+- Renamed :doc:`cert-msc32-c <clang-tidy/checks/cert/msc32-c>` to
+  :doc:`bugprone-random-generator-seed
+  <clang-tidy/checks/bugprone/random-generator-seed>`
+  keeping initial check as an alias to the new one.
+
+- Renamed :doc:`cert-msc51-cpp <clang-tidy/checks/cert/msc51-cpp>` to
+  :doc:`bugprone-random-generator-seed
+  <clang-tidy/checks/bugprone/random-generator-seed>`
+  keeping initial check as an alias to the new one.
+
 - Renamed :doc:`cert-oop57-cpp <clang-tidy/checks/cert/oop57-cpp>` to
   :doc:`bugprone-raw-memory-call-on-non-trivial-type
   <clang-tidy/checks/bugprone/raw-memory-call-on-non-trivial-type>`

diff  --git 
a/clang-tools-extra/docs/clang-tidy/checks/bugprone/random-generator-seed.rst 
b/clang-tools-extra/docs/clang-tidy/checks/bugprone/random-generator-seed.rst
new file mode 100644
index 0000000000000..25712447f7897
--- /dev/null
+++ 
b/clang-tools-extra/docs/clang-tidy/checks/bugprone/random-generator-seed.rst
@@ -0,0 +1,44 @@
+.. title:: clang-tidy - bugprone-random-generator-seed
+
+bugprone-random-generator-seed
+==============================
+
+Flags all pseudo-random number engines, engine adaptor
+instantiations and ``srand()`` when initialized or seeded with default 
argument,
+constant expression or any user-configurable type. Pseudo-random number
+engines seeded with a predictable value may cause vulnerabilities e.g. in
+security protocols.
+
+Examples:
+
+.. code-block:: c++
+
+  void foo() {
+    std::mt19937 engine1; // Diagnose, always generate the same sequence
+    std::mt19937 engine2(1); // Diagnose
+    engine1.seed(); // Diagnose
+    engine2.seed(1); // Diagnose
+
+    std::time_t t;
+    engine1.seed(std::time(&t)); // Diagnose, system time might be controlled 
by user
+
+    int x = atoi(argv[1]);
+    std::mt19937 engine3(x);  // Will not warn
+  }
+
+Options
+-------
+
+.. option:: DisallowedSeedTypes
+
+   A comma-separated list of the type names which are disallowed.
+   Default value is `time_t,std::time_t`.
+
+References
+----------
+
+This check corresponds to the CERT C++ Coding Standard rules
+`MSC51-CPP. Ensure your random number generator is properly seeded
+<https://wiki.sei.cmu.edu/confluence/display/cplusplus/MSC51-CPP.+Ensure+your+random+number+generator+is+properly+seeded>`_
 and
+`MSC32-C. Properly seed pseudorandom number generators
+<https://wiki.sei.cmu.edu/confluence/display/c/MSC32-C.+Properly+seed+pseudorandom+number+generators>`_.
\ No newline at end of file

diff  --git a/clang-tools-extra/docs/clang-tidy/checks/cert/msc32-c.rst 
b/clang-tools-extra/docs/clang-tidy/checks/cert/msc32-c.rst
index 6e453edefa76e..e0ed8074185ca 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/cert/msc32-c.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/cert/msc32-c.rst
@@ -1,9 +1,14 @@
 .. title:: clang-tidy - cert-msc32-c
 .. meta::
-   :http-equiv=refresh: 5;URL=../cert/msc51-cpp.html
+   :http-equiv=refresh: 5;URL=../bugprone/random-generator-seed.html
 
 cert-msc32-c
 ============
 
 The `cert-msc32-c` check is an alias, please see
-:doc:`cert-msc51-cpp <../cert/msc51-cpp>` for more information.
+:doc:`bugprone-random-generator-seed <../bugprone/random-generator-seed>`
+for more information.
+
+This check corresponds to the CERT C Coding Standard rule
+`MSC32-C. Properly seed pseudorandom number generators
+<https://wiki.sei.cmu.edu/confluence/display/c/MSC32-C.+Properly+seed+pseudorandom+number+generators>`_.

diff  --git a/clang-tools-extra/docs/clang-tidy/checks/cert/msc51-cpp.rst 
b/clang-tools-extra/docs/clang-tidy/checks/cert/msc51-cpp.rst
index 99e550aef0e7a..a9b8672091bc6 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/cert/msc51-cpp.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/cert/msc51-cpp.rst
@@ -1,40 +1,14 @@
 .. title:: clang-tidy - cert-msc51-cpp
+.. meta::
+   :http-equiv=refresh: 5;URL=../bugprone/random-generator-seed.html
 
 cert-msc51-cpp
 ==============
 
-This check flags all pseudo-random number engines, engine adaptor
-instantiations and ``srand()`` when initialized or seeded with default 
argument,
-constant expression or any user-configurable type. Pseudo-random number
-engines seeded with a predictable value may cause vulnerabilities e.g. in
-security protocols.
-This is a CERT security rule, see
-`MSC51-CPP. Ensure your random number generator is properly seeded
-<https://wiki.sei.cmu.edu/confluence/display/cplusplus/MSC51-CPP.+Ensure+your+random+number+generator+is+properly+seeded>`_
 and
-`MSC32-C. Properly seed pseudorandom number generators
-<https://wiki.sei.cmu.edu/confluence/display/c/MSC32-C.+Properly+seed+pseudorandom+number+generators>`_.
-
-Examples:
-
-.. code-block:: c++
-
-  void foo() {
-    std::mt19937 engine1; // Diagnose, always generate the same sequence
-    std::mt19937 engine2(1); // Diagnose
-    engine1.seed(); // Diagnose
-    engine2.seed(1); // Diagnose
-
-    std::time_t t;
-    engine1.seed(std::time(&t)); // Diagnose, system time might be controlled 
by user
+The `cert-msc51-cpp` check is an alias, please see
+:doc:`bugprone-random-generator-seed <../bugprone/random-generator-seed>`
+for more information.
 
-    int x = atoi(argv[1]);
-    std::mt19937 engine3(x);  // Will not warn
-  }
-
-Options
--------
-
-.. option:: DisallowedSeedTypes
-
-   A comma-separated list of the type names which are disallowed.
-   Default value is `time_t,std::time_t`.
+This check corresponds to the CERT C++ Coding Standard rule
+`MSC51-CPP. Ensure your random number generator is properly seeded
+<https://wiki.sei.cmu.edu/confluence/display/cplusplus/MSC51-CPP.+Ensure+your+random+number+generator+is+properly+seeded>`_.
\ 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 3b0ff3ef33365..a4014b5f15f0b 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/list.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst
@@ -133,6 +133,7 @@ Clang-Tidy Checks
    :doc:`bugprone-parent-virtual-call <bugprone/parent-virtual-call>`, "Yes"
    :doc:`bugprone-pointer-arithmetic-on-polymorphic-object 
<bugprone/pointer-arithmetic-on-polymorphic-object>`,
    :doc:`bugprone-posix-return <bugprone/posix-return>`, "Yes"
+   :doc:`bugprone-random-generator-seed <bugprone/random-generator-seed>`,
    :doc:`bugprone-raw-memory-call-on-non-trivial-type 
<bugprone/raw-memory-call-on-non-trivial-type>`,
    :doc:`bugprone-redundant-branch-condition 
<bugprone/redundant-branch-condition>`, "Yes"
    :doc:`bugprone-reserved-identifier <bugprone/reserved-identifier>`, "Yes"
@@ -183,7 +184,6 @@ Clang-Tidy Checks
    :doc:`cert-err60-cpp <cert/err60-cpp>`,
    :doc:`cert-flp30-c <cert/flp30-c>`,
    :doc:`cert-msc50-cpp <cert/msc50-cpp>`,
-   :doc:`cert-msc51-cpp <cert/msc51-cpp>`,
    :doc:`cert-oop58-cpp <cert/oop58-cpp>`,
    :doc:`concurrency-mt-unsafe <concurrency/mt-unsafe>`,
    :doc:`concurrency-thread-canceltype-asynchronous 
<concurrency/thread-canceltype-asynchronous>`,
@@ -461,8 +461,9 @@ Check aliases
    :doc:`cert-mem57-cpp <cert/mem57-cpp>`, 
:doc:`bugprone-default-operator-new-on-overaligned-type 
<bugprone/default-operator-new-on-overaligned-type>`,
    :doc:`cert-msc24-c <cert/msc24-c>`, :doc:`bugprone-unsafe-functions 
<bugprone/unsafe-functions>`,
    :doc:`cert-msc30-c <cert/msc30-c>`, :doc:`cert-msc50-cpp <cert/msc50-cpp>`,
-   :doc:`cert-msc32-c <cert/msc32-c>`, :doc:`cert-msc51-cpp <cert/msc51-cpp>`,
+   :doc:`cert-msc32-c <cert/msc32-c>`, :doc:`bugprone-random-generator-seed 
<bugprone/random-generator-seed>`,
    :doc:`cert-msc33-c <cert/msc33-c>`, :doc:`bugprone-unsafe-functions 
<bugprone/unsafe-functions>`,
+   :doc:`cert-msc51-cpp <cert/msc51-cpp>`, 
:doc:`bugprone-random-generator-seed <bugprone/random-generator-seed>`,
    :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>`,

diff  --git a/clang-tools-extra/test/clang-tidy/checkers/cert/msc32-c.c 
b/clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.c
similarity index 66%
rename from clang-tools-extra/test/clang-tidy/checkers/cert/msc32-c.c
rename to 
clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.c
index 0a1d79b4d916b..7f2a0685e4a2e 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/cert/msc32-c.c
+++ 
b/clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.c
@@ -1,4 +1,5 @@
-// RUN: %check_clang_tidy %s cert-msc32-c %t -- -config="{CheckOptions: 
{cert-msc32-c.DisallowedSeedTypes: 'some_type,time_t'}}" -- -std=c99
+// RUN: %check_clang_tidy %s bugprone-random-generator-seed %t -- \
+// RUN: -config="{CheckOptions: 
{bugprone-random-generator-seed.DisallowedSeedTypes: 'some_type,time_t'}}"
 
 void srand(int seed);
 typedef int time_t;
@@ -6,15 +7,15 @@ time_t time(time_t *t);
 
 void f(void) {
   srand(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc32-c]
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
 
   const int a = 1;
   srand(a);
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc32-c]
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
 
   time_t t;
   srand(time(&t)); // Disallowed seed type
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc32-c]
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 }
 
 void g(void) {

diff  --git a/clang-tools-extra/test/clang-tidy/checkers/cert/msc51-cpp.cpp 
b/clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.cpp
similarity index 77%
rename from clang-tools-extra/test/clang-tidy/checkers/cert/msc51-cpp.cpp
rename to 
clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.cpp
index 637ba58688abe..c8818d6770799 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/cert/msc51-cpp.cpp
+++ 
b/clang-tools-extra/test/clang-tidy/checkers/bugprone/random-generator-seed.cpp
@@ -1,5 +1,5 @@
-// RUN: %check_clang_tidy %s cert-msc51-cpp %t -- \
-// RUN:     -config="{CheckOptions: {cert-msc51-cpp.DisallowedSeedTypes: 
'some_type,time_t'}}"
+// RUN: %check_clang_tidy %s bugprone-random-generator-seed %t -- \
+// RUN:     -config="{CheckOptions: 
{bugprone-random-generator-seed.DisallowedSeedTypes: 'some_type,time_t'}}"
 
 namespace std {
 
@@ -71,114 +71,114 @@ void f() {
   time_t t;
 
   std::srand(0);
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::srand(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::srand(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:3: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 
   // One instantiation for every engine
   std::default_random_engine engine1;
-  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::default_random_engine engine2(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::default_random_engine engine3(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::default_random_engine engine4(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:30: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
   engine1.seed();
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine1.seed(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine1.seed(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine1.seed(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 
   std::mt19937 engine5;
-  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::mt19937 engine6(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::mt19937 engine7(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::mt19937 engine8(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:16: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
   engine5.seed();
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine5.seed(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine5.seed(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine5.seed(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 
   std::ranlux24_base engine9;
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::ranlux24_base engine10(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::ranlux24_base engine11(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::ranlux24_base engine12(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
   engine9.seed();
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine9.seed(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine9.seed(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine9.seed(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 
   std::ranlux24 engine13;
-  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::ranlux24 engine14(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::ranlux24 engine15(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::ranlux24 engine16(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:17: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
   engine13.seed();
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine13.seed(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine13.seed(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine13.seed(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 
   std::independent_bits engine17;
-  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::independent_bits engine18(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::independent_bits engine19(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::independent_bits engine20(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
   engine17.seed();
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine17.seed(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine17.seed(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine17.seed(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 
   std::shuffle_order engine21;
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::shuffle_order engine22(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::shuffle_order engine23(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   std::shuffle_order engine24(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
   engine21.seed();
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a default argument will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine21.seed(1);
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine21.seed(seed);
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a constant value will generate a predictable sequence of values 
[bugprone-random-generator-seed]
   engine21.seed(time(&t));
-  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [cert-msc51-cpp]
+  // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: random number generator seeded 
with a disallowed source of seed value will generate a predictable sequence of 
values [bugprone-random-generator-seed]
 }
 
 struct A {


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to