summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
diff options
context:
space:
mode:
authorGabor Horvath <xazax.hun@gmail.com>2017-07-14 12:15:55 +0000
committerGabor Horvath <xazax.hun@gmail.com>2017-07-14 12:15:55 +0000
commit829e75a0377403cd94204d74c4f1e94fca68c96b (patch)
tree97db87ce1db842994a1e1bb7febf6294d196c3ba /clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
parent9f2c6207d5f925037ea776ddc2671d9c5d39ca8d (diff)
downloadbcm5719-llvm-829e75a0377403cd94204d74c4f1e94fca68c96b.tar.gz
bcm5719-llvm-829e75a0377403cd94204d74c4f1e94fca68c96b.zip
[clang-tidy] Add bugprone-suspicious-memset-usage check
Created new module bugprone and placed the check in that. Finds memset() calls with potential mistakes in their arguments. Replaces and extends the existing google-runtime-memset-zero-length check. Cases covered: * Fill value is a character '0'. Integer 0 might have been intended. * Fill value is out of char range and gets truncated. * Byte count is zero. Potentially swapped with the fill value argument. Patch by: Reka Nikolett Kovacs Differential Revision: https://reviews.llvm.org/D32700 llvm-svn: 308020
Diffstat (limited to 'clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp b/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
new file mode 100644
index 00000000000..65353a23c7a
--- /dev/null
+++ b/clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
@@ -0,0 +1,38 @@
+//===--- BugproneTidyModule.cpp - clang-tidy ------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "../ClangTidy.h"
+#include "../ClangTidyModule.h"
+#include "../ClangTidyModuleRegistry.h"
+#include "SuspiciousMemsetUsageCheck.h"
+
+namespace clang {
+namespace tidy {
+namespace bugprone {
+
+class BugproneModule : public ClangTidyModule {
+public:
+ void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
+ CheckFactories.registerCheck<SuspiciousMemsetUsageCheck>(
+ "bugprone-suspicious-memset-usage");
+ }
+};
+
+} // namespace bugprone
+
+// Register the BugproneTidyModule using this statically initialized variable.
+static ClangTidyModuleRegistry::Add<bugprone::BugproneModule>
+ X("bugprone-module", "Adds checks for bugprone code constructs.");
+
+// This anchor is used to force the linker to link in the generated object file
+// and thus register the BugproneModule.
+volatile int BugproneModuleAnchorSource = 0;
+
+} // namespace tidy
+} // namespace clang
OpenPOWER on IntegriCloud