diff options
| author | Gabor Horvath <xazax.hun@gmail.com> | 2017-07-14 12:15:55 +0000 |
|---|---|---|
| committer | Gabor Horvath <xazax.hun@gmail.com> | 2017-07-14 12:15:55 +0000 |
| commit | 829e75a0377403cd94204d74c4f1e94fca68c96b (patch) | |
| tree | 97db87ce1db842994a1e1bb7febf6294d196c3ba /clang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp | |
| parent | 9f2c6207d5f925037ea776ddc2671d9c5d39ca8d (diff) | |
| download | bcm5719-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.cpp | 38 |
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 |

