[clang-tools-extra] r326386 - [clang-tidy] Another batch of checks to rename from misc- to bugprone-.
Alexander Kornienko via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 28 15:47:16 PST 2018
Author: alexfh
Date: Wed Feb 28 15:47:15 2018
New Revision: 326386
URL: http://llvm.org/viewvc/llvm-project?rev=326386&view=rev
Log:
[clang-tidy] Another batch of checks to rename from misc- to bugprone-.
Summary:
clang-tidy/rename_check.py {misc,bugprone}-suspicious-semicolon
clang-tidy/rename_check.py {misc,bugprone}-suspicious-string-compare
clang-tidy/rename_check.py {misc,bugprone}-swapped-arguments
clang-tidy/rename_check.py {misc,bugprone}-undelegated-constructor --check_class_name UndelegatedConstructor
Reviewers: hokein, sammccall, aaron.ballman
Subscribers: klimek, mgorny, xazax.hun, cfe-commits
Differential Revision: https://reviews.llvm.org/D43870
Added:
clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp
clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.h
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h
clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp
clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.h
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h
clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.cpp
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp
clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.h
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h
clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.cpp
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp
clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.h
- copied, changed from r326384, clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h
clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-semicolon.rst
- copied, changed from r326384, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-string-compare.rst
- copied, changed from r326384, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-swapped-arguments.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-undelegated-constructor.rst
- copied, changed from r326384, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst
clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon-fail.cpp
- copied, changed from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon.cpp
- copied, changed from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.c
- copied, changed from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c
clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.cpp
- copied, changed from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-swapped-arguments.cpp
- copied, changed from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor-cxx98.cpp
- copied, changed from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp
clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor.cpp
- copied, changed from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp
Removed:
clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp
clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h
clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp
clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h
clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp
clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h
clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp
clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h
clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/misc-swapped-arguments.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst
clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c
clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp
clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp
Modified:
clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp
clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt
clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp
clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt
clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp
clang-tools-extra/trunk/docs/ReleaseNotes.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst
clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
clang-tools-extra/trunk/test/clang-tidy/objc-arc-and-properties.m
clang-tools-extra/trunk/test/clang-tidy/objc-no-arc-or-properties.m
Modified: clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/BugproneTidyModule.cpp Wed Feb 28 15:47:15 2018
@@ -33,8 +33,12 @@
#include "SuspiciousEnumUsageCheck.h"
#include "SuspiciousMemsetUsageCheck.h"
#include "SuspiciousMissingCommaCheck.h"
+#include "SuspiciousSemicolonCheck.h"
+#include "SuspiciousStringCompareCheck.h"
+#include "SwappedArgumentsCheck.h"
#include "ThrowKeywordMissingCheck.h"
#include "UndefinedMemoryManipulationCheck.h"
+#include "UndelegatedConstructorCheck.h"
#include "UseAfterMoveCheck.h"
#include "VirtualNearMissCheck.h"
@@ -91,10 +95,18 @@ public:
"bugprone-suspicious-memset-usage");
CheckFactories.registerCheck<SuspiciousMissingCommaCheck>(
"bugprone-suspicious-missing-comma");
+ CheckFactories.registerCheck<SuspiciousSemicolonCheck>(
+ "bugprone-suspicious-semicolon");
+ CheckFactories.registerCheck<SuspiciousStringCompareCheck>(
+ "bugprone-suspicious-string-compare");
+ CheckFactories.registerCheck<SwappedArgumentsCheck>(
+ "bugprone-swapped-arguments");
CheckFactories.registerCheck<ThrowKeywordMissingCheck>(
"bugprone-throw-keyword-missing");
CheckFactories.registerCheck<UndefinedMemoryManipulationCheck>(
"bugprone-undefined-memory-manipulation");
+ CheckFactories.registerCheck<UndelegatedConstructorCheck>(
+ "bugprone-undelegated-constructor");
CheckFactories.registerCheck<UseAfterMoveCheck>(
"bugprone-use-after-move");
CheckFactories.registerCheck<VirtualNearMissCheck>(
Modified: clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/CMakeLists.txt Wed Feb 28 15:47:15 2018
@@ -25,8 +25,12 @@ add_clang_library(clangTidyBugproneModul
SuspiciousEnumUsageCheck.cpp
SuspiciousMemsetUsageCheck.cpp
SuspiciousMissingCommaCheck.cpp
+ SuspiciousSemicolonCheck.cpp
+ SuspiciousStringCompareCheck.cpp
+ SwappedArgumentsCheck.cpp
ThrowKeywordMissingCheck.cpp
UndefinedMemoryManipulationCheck.cpp
+ UndelegatedConstructorCheck.cpp
UseAfterMoveCheck.cpp
VirtualNearMissCheck.cpp
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp (from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp?p2=clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp&p1=clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp Wed Feb 28 15:47:15 2018
@@ -16,7 +16,7 @@ using namespace clang::ast_matchers;
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
void SuspiciousSemicolonCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(
@@ -72,6 +72,6 @@ void SuspiciousSemicolonCheck::check(con
<< FixItHint::CreateRemoval(SourceRange(LocStart, LocEnd));
}
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.h (from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.h?p2=clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.h&p1=clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousSemicolonCheck.h Wed Feb 28 15:47:15 2018
@@ -7,20 +7,20 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_SEMICOLON_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_SEMICOLON_H
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SUSPICIOUSSEMICOLONCHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SUSPICIOUSSEMICOLONCHECK_H
#include "../ClangTidy.h"
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
/// This check finds semicolon that modifies the meaning of the program
/// unintendedly.
///
/// For the user-facing documentation see:
-/// http://clang.llvm.org/extra/clang-tidy/checks/misc-suspicious-semicolon.html
+/// http://clang.llvm.org/extra/clang-tidy/checks/bugprone-suspicious-semicolon.html
class SuspiciousSemicolonCheck : public ClangTidyCheck {
public:
SuspiciousSemicolonCheck(StringRef Name, ClangTidyContext *Context)
@@ -29,8 +29,8 @@ public:
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
};
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_SEMICOLON_H
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SUSPICIOUSSEMICOLONCHECK_H
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp (from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp?p2=clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp&p1=clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp Wed Feb 28 15:47:15 2018
@@ -18,7 +18,7 @@ using namespace clang::ast_matchers;
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
// Semicolon separated list of known string compare-like functions. The list
// must ends with a semicolon.
@@ -213,6 +213,6 @@ void SuspiciousStringCompareCheck::check
}
}
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.h (from r326384, clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.h?p2=clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.h&p1=clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/SuspiciousStringCompareCheck.h Wed Feb 28 15:47:15 2018
@@ -7,19 +7,19 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_STRING_COMPARE_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_STRING_COMPARE_H
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SUSPICIOUSSTRINGCOMPARECHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SUSPICIOUSSTRINGCOMPARECHECK_H
#include "../ClangTidy.h"
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
/// Find suspicious calls to string compare functions.
///
/// For the user-facing documentation see:
-/// http://clang.llvm.org/extra/clang-tidy/checks/misc-suspicious-string-compare.html
+/// http://clang.llvm.org/extra/clang-tidy/checks/bugprone-suspicious-string-compare.html
class SuspiciousStringCompareCheck : public ClangTidyCheck {
public:
SuspiciousStringCompareCheck(StringRef Name, ClangTidyContext *Context);
@@ -33,8 +33,8 @@ private:
const std::string StringCompareLikeFunctions;
};
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_STRING_COMPARE_H
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SUSPICIOUSSTRINGCOMPARECHECK_H
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.cpp (from r326384, clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.cpp?p2=clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.cpp&p1=clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.cpp Wed Feb 28 15:47:15 2018
@@ -17,7 +17,7 @@ using namespace clang::ast_matchers;
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
void SwappedArgumentsCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(callExpr().bind("call"), this);
@@ -97,6 +97,6 @@ void SwappedArgumentsCheck::check(const
}
}
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.h (from r326384, clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.h?p2=clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.h&p1=clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/SwappedArgumentsCheck.h Wed Feb 28 15:47:15 2018
@@ -7,14 +7,14 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SWAPPEDARGUMENTSCHECK_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SWAPPEDARGUMENTSCHECK_H
+#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SWAPPEDARGUMENTSCHECK_H
+#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SWAPPEDARGUMENTSCHECK_H
#include "../ClangTidy.h"
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
/// Finds potentially swapped arguments by looking at implicit conversions.
class SwappedArgumentsCheck : public ClangTidyCheck {
@@ -25,8 +25,8 @@ public:
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
};
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SWAPPEDARGUMENTSCHECK_H
+#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SWAPPEDARGUMENTSCHECK_H
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.cpp (from r326384, clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.cpp?p2=clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.cpp&p1=clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.cpp Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-//===--- UndelegatedConstructor.cpp - clang-tidy --------------------------===//
+//===--- UndelegatedConstructorCheck.cpp - clang-tidy --------------------------===//
//
// The LLVM Compiler Infrastructure
//
@@ -7,7 +7,7 @@
//
//===----------------------------------------------------------------------===//
-#include "UndelegatedConstructor.h"
+#include "UndelegatedConstructorCheck.h"
#include "clang/AST/ASTContext.h"
#include "clang/Lex/Lexer.h"
@@ -15,7 +15,7 @@ using namespace clang::ast_matchers;
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
namespace {
AST_MATCHER_P(Stmt, ignoringTemporaryExpr,
@@ -79,6 +79,6 @@ void UndelegatedConstructorCheck::check(
"A temporary object is created here instead");
}
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
Copied: clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.h (from r326384, clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.h?p2=clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.h&p1=clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h (original)
+++ clang-tools-extra/trunk/clang-tidy/bugprone/UndelegatedConstructorCheck.h Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-//===--- UndelegatedConstructor.h - clang-tidy ------------------*- C++ -*-===//
+//===--- UndelegatedConstructorCheck.h - clang-tidy -------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
@@ -14,7 +14,7 @@
namespace clang {
namespace tidy {
-namespace misc {
+namespace bugprone {
/// Finds creation of temporary objects in constructors that look like a
/// function call to another constructor of the same class.
@@ -29,7 +29,7 @@ public:
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
};
-} // namespace misc
+} // namespace bugprone
} // namespace tidy
} // namespace clang
Modified: clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/hicpp/HICPPTidyModule.cpp Wed Feb 28 15:47:15 2018
@@ -21,7 +21,7 @@
#include "../google/ExplicitConstructorCheck.h"
#include "../misc/NewDeleteOverloadsCheck.h"
#include "../misc/StaticAssertCheck.h"
-#include "../misc/UndelegatedConstructor.h"
+#include "../bugprone/UndelegatedConstructorCheck.h"
#include "../modernize/DeprecatedHeadersCheck.h"
#include "../modernize/UseAutoCheck.h"
#include "../modernize/UseEmplaceCheck.h"
@@ -83,7 +83,7 @@ public:
CheckFactories.registerCheck<misc::StaticAssertCheck>(
"hicpp-static-assert");
CheckFactories.registerCheck<modernize::UseAutoCheck>("hicpp-use-auto");
- CheckFactories.registerCheck<misc::UndelegatedConstructorCheck>(
+ CheckFactories.registerCheck<bugprone::UndelegatedConstructorCheck>(
"hicpp-undelegated-constructor");
CheckFactories.registerCheck<modernize::UseEmplaceCheck>(
"hicpp-use-emplace");
Modified: clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/CMakeLists.txt Wed Feb 28 15:47:15 2018
@@ -12,11 +12,7 @@ add_clang_library(clangTidyMiscModule
SizeofContainerCheck.cpp
SizeofExpressionCheck.cpp
StaticAssertCheck.cpp
- SuspiciousSemicolonCheck.cpp
- SuspiciousStringCompareCheck.cpp
- SwappedArgumentsCheck.cpp
ThrowByValueCatchByReferenceCheck.cpp
- UndelegatedConstructor.cpp
UniqueptrResetReleaseCheck.cpp
UnusedAliasDeclsCheck.cpp
UnusedParametersCheck.cpp
Modified: clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/MiscTidyModule.cpp Wed Feb 28 15:47:15 2018
@@ -19,12 +19,8 @@
#include "SizeofContainerCheck.h"
#include "SizeofExpressionCheck.h"
#include "StaticAssertCheck.h"
-#include "SuspiciousSemicolonCheck.h"
-#include "SuspiciousStringCompareCheck.h"
-#include "SwappedArgumentsCheck.h"
#include "ThrowByValueCatchByReferenceCheck.h"
#include "UnconventionalAssignOperatorCheck.h"
-#include "UndelegatedConstructor.h"
#include "UniqueptrResetReleaseCheck.h"
#include "UnusedAliasDeclsCheck.h"
#include "UnusedParametersCheck.h"
@@ -55,16 +51,8 @@ public:
CheckFactories.registerCheck<SizeofExpressionCheck>(
"misc-sizeof-expression");
CheckFactories.registerCheck<StaticAssertCheck>("misc-static-assert");
- CheckFactories.registerCheck<SuspiciousSemicolonCheck>(
- "misc-suspicious-semicolon");
- CheckFactories.registerCheck<SuspiciousStringCompareCheck>(
- "misc-suspicious-string-compare");
- CheckFactories.registerCheck<SwappedArgumentsCheck>(
- "misc-swapped-arguments");
CheckFactories.registerCheck<ThrowByValueCatchByReferenceCheck>(
"misc-throw-by-value-catch-by-reference");
- CheckFactories.registerCheck<UndelegatedConstructorCheck>(
- "misc-undelegated-constructor");
CheckFactories.registerCheck<UniqueptrResetReleaseCheck>(
"misc-uniqueptr-reset-release");
CheckFactories.registerCheck<UnusedAliasDeclsCheck>(
Removed: clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.cpp (removed)
@@ -1,77 +0,0 @@
-//===--- SuspiciousSemicolonCheck.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 "SuspiciousSemicolonCheck.h"
-#include "../utils/LexerUtils.h"
-#include "clang/AST/ASTContext.h"
-#include "clang/ASTMatchers/ASTMatchFinder.h"
-
-using namespace clang::ast_matchers;
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-void SuspiciousSemicolonCheck::registerMatchers(MatchFinder *Finder) {
- Finder->addMatcher(
- stmt(anyOf(ifStmt(hasThen(nullStmt().bind("semi")),
- unless(hasElse(stmt()))),
- forStmt(hasBody(nullStmt().bind("semi"))),
- cxxForRangeStmt(hasBody(nullStmt().bind("semi"))),
- whileStmt(hasBody(nullStmt().bind("semi")))))
- .bind("stmt"),
- this);
-}
-
-void SuspiciousSemicolonCheck::check(const MatchFinder::MatchResult &Result) {
- if (Result.Context->getDiagnostics().hasUncompilableErrorOccurred())
- return;
-
- const auto *Semicolon = Result.Nodes.getNodeAs<NullStmt>("semi");
- SourceLocation LocStart = Semicolon->getLocStart();
-
- if (LocStart.isMacroID())
- return;
-
- ASTContext &Ctxt = *Result.Context;
- auto Token = utils::lexer::getPreviousToken(Ctxt, LocStart);
- auto &SM = *Result.SourceManager;
- unsigned SemicolonLine = SM.getSpellingLineNumber(LocStart);
-
- const auto *Statement = Result.Nodes.getNodeAs<Stmt>("stmt");
- const bool IsIfStmt = isa<IfStmt>(Statement);
-
- if (!IsIfStmt &&
- SM.getSpellingLineNumber(Token.getLocation()) != SemicolonLine)
- return;
-
- SourceLocation LocEnd = Semicolon->getLocEnd();
- FileID FID = SM.getFileID(LocEnd);
- llvm::MemoryBuffer *Buffer = SM.getBuffer(FID, LocEnd);
- Lexer Lexer(SM.getLocForStartOfFile(FID), Ctxt.getLangOpts(),
- Buffer->getBufferStart(), SM.getCharacterData(LocEnd) + 1,
- Buffer->getBufferEnd());
- if (Lexer.LexFromRawLexer(Token))
- return;
-
- unsigned BaseIndent = SM.getSpellingColumnNumber(Statement->getLocStart());
- unsigned NewTokenIndent = SM.getSpellingColumnNumber(Token.getLocation());
- unsigned NewTokenLine = SM.getSpellingLineNumber(Token.getLocation());
-
- if (!IsIfStmt && NewTokenIndent <= BaseIndent &&
- Token.getKind() != tok::l_brace && NewTokenLine != SemicolonLine)
- return;
-
- diag(LocStart, "potentially unintended semicolon")
- << FixItHint::CreateRemoval(SourceRange(LocStart, LocEnd));
-}
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
Removed: clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/SuspiciousSemicolonCheck.h (removed)
@@ -1,36 +0,0 @@
-//===--- SuspiciousSemicolonCheck.h - clang-tidy-----------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_SEMICOLON_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_SEMICOLON_H
-
-#include "../ClangTidy.h"
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-/// This check finds semicolon that modifies the meaning of the program
-/// unintendedly.
-///
-/// For the user-facing documentation see:
-/// http://clang.llvm.org/extra/clang-tidy/checks/misc-suspicious-semicolon.html
-class SuspiciousSemicolonCheck : public ClangTidyCheck {
-public:
- SuspiciousSemicolonCheck(StringRef Name, ClangTidyContext *Context)
- : ClangTidyCheck(Name, Context) {}
- void registerMatchers(ast_matchers::MatchFinder *Finder) override;
- void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
-};
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
-
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_SEMICOLON_H
Removed: clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.cpp (removed)
@@ -1,218 +0,0 @@
-//===--- SuspiciousStringCompareCheck.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 "SuspiciousStringCompareCheck.h"
-#include "../utils/Matchers.h"
-#include "../utils/OptionsUtils.h"
-#include "clang/AST/ASTContext.h"
-#include "clang/ASTMatchers/ASTMatchFinder.h"
-#include "clang/Lex/Lexer.h"
-
-using namespace clang::ast_matchers;
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-// Semicolon separated list of known string compare-like functions. The list
-// must ends with a semicolon.
-static const char KnownStringCompareFunctions[] = "__builtin_memcmp;"
- "__builtin_strcasecmp;"
- "__builtin_strcmp;"
- "__builtin_strncasecmp;"
- "__builtin_strncmp;"
- "_mbscmp;"
- "_mbscmp_l;"
- "_mbsicmp;"
- "_mbsicmp_l;"
- "_mbsnbcmp;"
- "_mbsnbcmp_l;"
- "_mbsnbicmp;"
- "_mbsnbicmp_l;"
- "_mbsncmp;"
- "_mbsncmp_l;"
- "_mbsnicmp;"
- "_mbsnicmp_l;"
- "_memicmp;"
- "_memicmp_l;"
- "_stricmp;"
- "_stricmp_l;"
- "_strnicmp;"
- "_strnicmp_l;"
- "_wcsicmp;"
- "_wcsicmp_l;"
- "_wcsnicmp;"
- "_wcsnicmp_l;"
- "lstrcmp;"
- "lstrcmpi;"
- "memcmp;"
- "memicmp;"
- "strcasecmp;"
- "strcmp;"
- "strcmpi;"
- "stricmp;"
- "strncasecmp;"
- "strncmp;"
- "strnicmp;"
- "wcscasecmp;"
- "wcscmp;"
- "wcsicmp;"
- "wcsncmp;"
- "wcsnicmp;"
- "wmemcmp;";
-
-SuspiciousStringCompareCheck::SuspiciousStringCompareCheck(
- StringRef Name, ClangTidyContext *Context)
- : ClangTidyCheck(Name, Context),
- WarnOnImplicitComparison(Options.get("WarnOnImplicitComparison", 1)),
- WarnOnLogicalNotComparison(Options.get("WarnOnLogicalNotComparison", 0)),
- StringCompareLikeFunctions(
- Options.get("StringCompareLikeFunctions", "")) {}
-
-void SuspiciousStringCompareCheck::storeOptions(
- ClangTidyOptions::OptionMap &Opts) {
- Options.store(Opts, "WarnOnImplicitComparison", WarnOnImplicitComparison);
- Options.store(Opts, "WarnOnLogicalNotComparison", WarnOnLogicalNotComparison);
- Options.store(Opts, "StringCompareLikeFunctions", StringCompareLikeFunctions);
-}
-
-void SuspiciousStringCompareCheck::registerMatchers(MatchFinder *Finder) {
- // Match relational operators.
- const auto ComparisonUnaryOperator = unaryOperator(hasOperatorName("!"));
- const auto ComparisonBinaryOperator =
- binaryOperator(matchers::isComparisonOperator());
- const auto ComparisonOperator =
- expr(anyOf(ComparisonUnaryOperator, ComparisonBinaryOperator));
-
- // Add the list of known string compare-like functions and add user-defined
- // functions.
- std::vector<std::string> FunctionNames = utils::options::parseStringList(
- (llvm::Twine(KnownStringCompareFunctions) + StringCompareLikeFunctions)
- .str());
-
- // Match a call to a string compare functions.
- const auto FunctionCompareDecl =
- functionDecl(hasAnyName(std::vector<StringRef>(FunctionNames.begin(),
- FunctionNames.end())))
- .bind("decl");
- const auto DirectStringCompareCallExpr =
- callExpr(hasDeclaration(FunctionCompareDecl)).bind("call");
- const auto MacroStringCompareCallExpr = conditionalOperator(anyOf(
- hasTrueExpression(ignoringParenImpCasts(DirectStringCompareCallExpr)),
- hasFalseExpression(ignoringParenImpCasts(DirectStringCompareCallExpr))));
- // The implicit cast is not present in C.
- const auto StringCompareCallExpr = ignoringParenImpCasts(
- anyOf(DirectStringCompareCallExpr, MacroStringCompareCallExpr));
-
- if (WarnOnImplicitComparison) {
- // Detect suspicious calls to string compare:
- // 'if (strcmp())' -> 'if (strcmp() != 0)'
- Finder->addMatcher(
- stmt(anyOf(ifStmt(hasCondition(StringCompareCallExpr)),
- whileStmt(hasCondition(StringCompareCallExpr)),
- doStmt(hasCondition(StringCompareCallExpr)),
- forStmt(hasCondition(StringCompareCallExpr)),
- binaryOperator(
- anyOf(hasOperatorName("&&"), hasOperatorName("||")),
- hasEitherOperand(StringCompareCallExpr))))
- .bind("missing-comparison"),
- this);
- }
-
- if (WarnOnLogicalNotComparison) {
- // Detect suspicious calls to string compared with '!' operator:
- // 'if (!strcmp())' -> 'if (strcmp() == 0)'
- Finder->addMatcher(unaryOperator(hasOperatorName("!"),
- hasUnaryOperand(ignoringParenImpCasts(
- StringCompareCallExpr)))
- .bind("logical-not-comparison"),
- this);
- }
-
- // Detect suspicious cast to an inconsistant type (i.e. not integer type).
- Finder->addMatcher(
- implicitCastExpr(unless(hasType(isInteger())),
- hasSourceExpression(StringCompareCallExpr))
- .bind("invalid-conversion"),
- this);
-
- // Detect suspicious operator with string compare function as operand.
- Finder->addMatcher(
- binaryOperator(
- unless(anyOf(matchers::isComparisonOperator(), hasOperatorName("&&"),
- hasOperatorName("||"), hasOperatorName("="))),
- hasEitherOperand(StringCompareCallExpr))
- .bind("suspicious-operator"),
- this);
-
- // Detect comparison to invalid constant: 'strcmp() == -1'.
- const auto InvalidLiteral = ignoringParenImpCasts(
- anyOf(integerLiteral(unless(equals(0))),
- unaryOperator(
- hasOperatorName("-"),
- has(ignoringParenImpCasts(integerLiteral(unless(equals(0)))))),
- characterLiteral(), cxxBoolLiteral()));
-
- Finder->addMatcher(binaryOperator(matchers::isComparisonOperator(),
- hasEitherOperand(StringCompareCallExpr),
- hasEitherOperand(InvalidLiteral))
- .bind("invalid-comparison"),
- this);
-}
-
-void SuspiciousStringCompareCheck::check(
- const MatchFinder::MatchResult &Result) {
- const auto *Decl = Result.Nodes.getNodeAs<FunctionDecl>("decl");
- const auto *Call = Result.Nodes.getNodeAs<CallExpr>("call");
- assert(Decl != nullptr && Call != nullptr);
-
- if (Result.Nodes.getNodeAs<Stmt>("missing-comparison")) {
- SourceLocation EndLoc = Lexer::getLocForEndOfToken(
- Call->getRParenLoc(), 0, Result.Context->getSourceManager(),
- getLangOpts());
-
- diag(Call->getLocStart(),
- "function %0 is called without explicitly comparing result")
- << Decl << FixItHint::CreateInsertion(EndLoc, " != 0");
- }
-
- if (const auto *E = Result.Nodes.getNodeAs<Expr>("logical-not-comparison")) {
- SourceLocation EndLoc = Lexer::getLocForEndOfToken(
- Call->getRParenLoc(), 0, Result.Context->getSourceManager(),
- getLangOpts());
- SourceLocation NotLoc = E->getLocStart();
-
- diag(Call->getLocStart(),
- "function %0 is compared using logical not operator")
- << Decl << FixItHint::CreateRemoval(
- CharSourceRange::getTokenRange(NotLoc, NotLoc))
- << FixItHint::CreateInsertion(EndLoc, " == 0");
- }
-
- if (Result.Nodes.getNodeAs<Stmt>("invalid-comparison")) {
- diag(Call->getLocStart(),
- "function %0 is compared to a suspicious constant")
- << Decl;
- }
-
- if (const auto *BinOp =
- Result.Nodes.getNodeAs<BinaryOperator>("suspicious-operator")) {
- diag(Call->getLocStart(), "results of function %0 used by operator '%1'")
- << Decl << BinOp->getOpcodeStr();
- }
-
- if (Result.Nodes.getNodeAs<Stmt>("invalid-conversion")) {
- diag(Call->getLocStart(), "function %0 has suspicious implicit cast")
- << Decl;
- }
-}
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
Removed: clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/SuspiciousStringCompareCheck.h (removed)
@@ -1,40 +0,0 @@
-//===--- SuspiciousStringCompareCheck.h - clang-tidy-------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_STRING_COMPARE_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_STRING_COMPARE_H
-
-#include "../ClangTidy.h"
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-/// Find suspicious calls to string compare functions.
-///
-/// For the user-facing documentation see:
-/// http://clang.llvm.org/extra/clang-tidy/checks/misc-suspicious-string-compare.html
-class SuspiciousStringCompareCheck : public ClangTidyCheck {
-public:
- SuspiciousStringCompareCheck(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;
-
-private:
- const bool WarnOnImplicitComparison;
- const bool WarnOnLogicalNotComparison;
- const std::string StringCompareLikeFunctions;
-};
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
-
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SUSPICIOUS_STRING_COMPARE_H
Removed: clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.cpp (removed)
@@ -1,102 +0,0 @@
-//===--- SwappedArgumentsCheck.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 "SwappedArgumentsCheck.h"
-#include "clang/AST/ASTContext.h"
-#include "clang/Lex/Lexer.h"
-#include "clang/Tooling/FixIt.h"
-#include "llvm/ADT/SmallPtrSet.h"
-
-using namespace clang::ast_matchers;
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-void SwappedArgumentsCheck::registerMatchers(MatchFinder *Finder) {
- Finder->addMatcher(callExpr().bind("call"), this);
-}
-
-/// \brief Look through lvalue to rvalue and nop casts. This filters out
-/// implicit conversions that have no effect on the input but block our view for
-/// other implicit casts.
-static const Expr *ignoreNoOpCasts(const Expr *E) {
- if (auto *Cast = dyn_cast<CastExpr>(E))
- if (Cast->getCastKind() == CK_LValueToRValue ||
- Cast->getCastKind() == CK_NoOp)
- return ignoreNoOpCasts(Cast->getSubExpr());
- return E;
-}
-
-/// \brief Restrict the warning to implicit casts that are most likely
-/// accidental. User defined or integral conversions fit in this category,
-/// lvalue to rvalue or derived to base does not.
-static bool isImplicitCastCandidate(const CastExpr *Cast) {
- return Cast->getCastKind() == CK_UserDefinedConversion ||
- Cast->getCastKind() == CK_FloatingToBoolean ||
- Cast->getCastKind() == CK_FloatingToIntegral ||
- Cast->getCastKind() == CK_IntegralToBoolean ||
- Cast->getCastKind() == CK_IntegralToFloating ||
- Cast->getCastKind() == CK_MemberPointerToBoolean ||
- Cast->getCastKind() == CK_PointerToBoolean;
-}
-
-void SwappedArgumentsCheck::check(const MatchFinder::MatchResult &Result) {
- const ASTContext &Ctx = *Result.Context;
- const auto *Call = Result.Nodes.getNodeAs<CallExpr>("call");
-
- llvm::SmallPtrSet<const Expr *, 4> UsedArgs;
- for (unsigned I = 1, E = Call->getNumArgs(); I < E; ++I) {
- const Expr *LHS = Call->getArg(I - 1);
- const Expr *RHS = Call->getArg(I);
-
- // Only need to check RHS, as LHS has already been covered. We don't want to
- // emit two warnings for a single argument.
- if (UsedArgs.count(RHS))
- continue;
-
- const auto *LHSCast = dyn_cast<ImplicitCastExpr>(ignoreNoOpCasts(LHS));
- const auto *RHSCast = dyn_cast<ImplicitCastExpr>(ignoreNoOpCasts(RHS));
-
- // Look if this is a potentially swapped argument pair. First look for
- // implicit casts.
- if (!LHSCast || !RHSCast || !isImplicitCastCandidate(LHSCast) ||
- !isImplicitCastCandidate(RHSCast))
- continue;
-
- // If the types that go into the implicit casts match the types of the other
- // argument in the declaration there is a high probability that the
- // arguments were swapped.
- // TODO: We could make use of the edit distance between the argument name
- // and the name of the passed variable in addition to this type based
- // heuristic.
- const Expr *LHSFrom = ignoreNoOpCasts(LHSCast->getSubExpr());
- const Expr *RHSFrom = ignoreNoOpCasts(RHSCast->getSubExpr());
- if (LHS->getType() == RHS->getType() ||
- LHS->getType() != RHSFrom->getType() ||
- RHS->getType() != LHSFrom->getType())
- continue;
-
- // Emit a warning and fix-its that swap the arguments.
- diag(Call->getLocStart(), "argument with implicit conversion from %0 "
- "to %1 followed by argument converted from "
- "%2 to %3, potentially swapped arguments.")
- << LHS->getType() << LHSFrom->getType() << RHS->getType()
- << RHSFrom->getType()
- << tooling::fixit::createReplacement(*LHS, *RHS, Ctx)
- << tooling::fixit::createReplacement(*RHS, *LHS, Ctx);
-
- // Remember that we emitted a warning for this argument.
- UsedArgs.insert(RHSCast);
- }
-}
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
Removed: clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/SwappedArgumentsCheck.h (removed)
@@ -1,32 +0,0 @@
-//===--- SwappedArgumentsCheck.h - clang-tidy -------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SWAPPEDARGUMENTSCHECK_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SWAPPEDARGUMENTSCHECK_H
-
-#include "../ClangTidy.h"
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-/// Finds potentially swapped arguments by looking at implicit conversions.
-class SwappedArgumentsCheck : public ClangTidyCheck {
-public:
- SwappedArgumentsCheck(StringRef Name, ClangTidyContext *Context)
- : ClangTidyCheck(Name, Context) {}
- void registerMatchers(ast_matchers::MatchFinder *Finder) override;
- void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
-};
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
-
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_SWAPPEDARGUMENTSCHECK_H
Removed: clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.cpp (removed)
@@ -1,84 +0,0 @@
-//===--- UndelegatedConstructor.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 "UndelegatedConstructor.h"
-#include "clang/AST/ASTContext.h"
-#include "clang/Lex/Lexer.h"
-
-using namespace clang::ast_matchers;
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-namespace {
-AST_MATCHER_P(Stmt, ignoringTemporaryExpr,
- ast_matchers::internal::Matcher<Stmt>, InnerMatcher) {
- const Stmt *E = &Node;
- for (;;) {
- // Temporaries with non-trivial dtors.
- if (const auto *EWC = dyn_cast<ExprWithCleanups>(E))
- E = EWC->getSubExpr();
- // Temporaries with zero or more than two ctor arguments.
- else if (const auto *BTE = dyn_cast<CXXBindTemporaryExpr>(E))
- E = BTE->getSubExpr();
- // Temporaries with exactly one ctor argument.
- else if (const auto *FCE = dyn_cast<CXXFunctionalCastExpr>(E))
- E = FCE->getSubExpr();
- else
- break;
- }
-
- return InnerMatcher.matches(*E, Finder, Builder);
-}
-
-// Finds a node if it's a base of an already bound node.
-AST_MATCHER_P(CXXRecordDecl, baseOfBoundNode, std::string, ID) {
- return Builder->removeBindings(
- [&](const ast_matchers::internal::BoundNodesMap &Nodes) {
- const auto *Derived = Nodes.getNodeAs<CXXRecordDecl>(ID);
- return Derived != &Node && !Derived->isDerivedFrom(&Node);
- });
-}
-} // namespace
-
-void UndelegatedConstructorCheck::registerMatchers(MatchFinder *Finder) {
- // We look for calls to constructors of the same type in constructors. To do
- // this we have to look through a variety of nodes that occur in the path,
- // depending on the type's destructor and the number of arguments on the
- // constructor call, this is handled by ignoringTemporaryExpr. Ignore template
- // instantiations to reduce the number of duplicated warnings.
- //
- // Only register the matchers for C++11; the functionality currently does not
- // provide any benefit to other languages, despite being benign.
- if (!getLangOpts().CPlusPlus11)
- return;
-
- Finder->addMatcher(
- compoundStmt(
- hasParent(
- cxxConstructorDecl(ofClass(cxxRecordDecl().bind("parent")))),
- forEach(ignoringTemporaryExpr(
- cxxConstructExpr(hasDeclaration(cxxConstructorDecl(ofClass(
- cxxRecordDecl(baseOfBoundNode("parent"))))))
- .bind("construct"))),
- unless(isInTemplateInstantiation())),
- this);
-}
-
-void UndelegatedConstructorCheck::check(
- const MatchFinder::MatchResult &Result) {
- const auto *E = Result.Nodes.getNodeAs<CXXConstructExpr>("construct");
- diag(E->getLocStart(), "did you intend to call a delegated constructor? "
- "A temporary object is created here instead");
-}
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
Removed: clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h (original)
+++ clang-tools-extra/trunk/clang-tidy/misc/UndelegatedConstructor.h (removed)
@@ -1,36 +0,0 @@
-//===--- UndelegatedConstructor.h - clang-tidy ------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_UNDELEGATEDCONSTRUCTOR_H
-#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_UNDELEGATEDCONSTRUCTOR_H
-
-#include "../ClangTidy.h"
-
-namespace clang {
-namespace tidy {
-namespace misc {
-
-/// Finds creation of temporary objects in constructors that look like a
-/// function call to another constructor of the same class.
-///
-/// The user most likely meant to use a delegating constructor or base class
-/// initializer.
-class UndelegatedConstructorCheck : public ClangTidyCheck {
-public:
- UndelegatedConstructorCheck(StringRef Name, ClangTidyContext *Context)
- : ClangTidyCheck(Name, Context) {}
- void registerMatchers(ast_matchers::MatchFinder *Finder) override;
- void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
-};
-
-} // namespace misc
-} // namespace tidy
-} // namespace clang
-
-#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MISC_UNDELEGATEDCONSTRUCTOR_H
Modified: clang-tools-extra/trunk/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/ReleaseNotes.rst?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/ReleaseNotes.rst (original)
+++ clang-tools-extra/trunk/docs/ReleaseNotes.rst Wed Feb 28 15:47:15 2018
@@ -136,6 +136,18 @@ Improvements to clang-tidy
- The 'misc-suspicious-missing-comma' check was renamed to `bugprone-suspicious-missing-comma
<http://clang.llvm.org/extra/clang-tidy/checks/bugprone-suspicious-missing-comma.html>`_
+- The 'misc-suspicious-semicolon' check was renamed to `bugprone-suspicious-semicolon
+ <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-suspicious-semicolon.html>`_
+
+- The 'misc-suspicious-string-compare' check was renamed to `bugprone-suspicious-string-compare
+ <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-suspicious-string-compare.html>`_
+
+- The 'misc-swapped-arguments' check was renamed to `bugprone-swapped-arguments
+ <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-swapped-arguments.html>`_
+
+- The 'misc-undelegated-constructor' check was renamed to `bugprone-undelegated-constructor
+ <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-undelegated-constructor.html>`_
+
Improvements to include-fixer
-----------------------------
Copied: clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-semicolon.rst (from r326384, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-semicolon.rst?p2=clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-semicolon.rst&p1=clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-semicolon.rst Wed Feb 28 15:47:15 2018
@@ -1,7 +1,7 @@
-.. title:: clang-tidy - misc-suspicious-semicolon
+.. title:: clang-tidy - bugprone-suspicious-semicolon
-misc-suspicious-semicolon
-=========================
+bugprone-suspicious-semicolon
+=============================
Finds most instances of stray semicolons that unexpectedly alter the meaning of
the code. More specifically, it looks for ``if``, ``while``, ``for`` and
Copied: clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-string-compare.rst (from r326384, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-string-compare.rst?p2=clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-string-compare.rst&p1=clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-suspicious-string-compare.rst Wed Feb 28 15:47:15 2018
@@ -1,7 +1,7 @@
-.. title:: clang-tidy - misc-suspicious-string-compare
+.. title:: clang-tidy - bugprone-suspicious-string-compare
-misc-suspicious-string-compare
-==============================
+bugprone-suspicious-string-compare
+==================================
Find suspicious usage of runtime string comparison functions.
This check is valid in C and C++.
Added: clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-swapped-arguments.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-swapped-arguments.rst?rev=326386&view=auto
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-swapped-arguments.rst (added)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-swapped-arguments.rst Wed Feb 28 15:47:15 2018
@@ -0,0 +1,6 @@
+.. title:: clang-tidy - bugprone-swapped-arguments
+
+bugprone-swapped-arguments
+==========================
+
+Finds potentially swapped arguments by looking at implicit conversions.
Copied: clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-undelegated-constructor.rst (from r326384, clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-undelegated-constructor.rst?p2=clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-undelegated-constructor.rst&p1=clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/bugprone-undelegated-constructor.rst Wed Feb 28 15:47:15 2018
@@ -1,8 +1,7 @@
-.. title:: clang-tidy - misc-undelegated-constructor
-
-misc-undelegated-constructor
-============================
+.. title:: clang-tidy - bugprone-undelegated-constructor
+bugprone-undelegated-constructor
+================================
Finds creation of temporary objects in constructors that look like a
function call to another constructor of the same class.
Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/hicpp-undelegated-constructor.rst Wed Feb 28 15:47:15 2018
@@ -1,11 +1,11 @@
.. title:: clang-tidy - hicpp-undelegated-construtor
.. meta::
- :http-equiv=refresh: 5;URL=misc-undelegated-constructor.html
+ :http-equiv=refresh: 5;URL=bugprone-undelegated-constructor.html
hicpp-undelegated-constructor
=============================
-This check is an alias for `misc-undelegated-constructor <misc-undelegated-constructor.html>`_.
+This check is an alias for `bugprone-undelegated-constructor <bugprone-undelegated-constructor.html>`_.
Partially implements `rule 12.4.5 <http://www.codingstandard.com/rule/12-4-5-use-delegating-constructors-to-reduce-code-duplication/>`_
to find misplaced constructor calls inside a constructor.
Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst Wed Feb 28 15:47:15 2018
@@ -40,8 +40,12 @@ Clang-Tidy Checks
bugprone-suspicious-enum-usage
bugprone-suspicious-memset-usage
bugprone-suspicious-missing-comma
+ bugprone-suspicious-semicolon
+ bugprone-suspicious-string-compare
+ bugprone-swapped-arguments
bugprone-throw-keyword-missing
bugprone-undefined-memory-manipulation
+ bugprone-undelegated-constructor
bugprone-use-after-move
bugprone-virtual-near-miss
cert-dcl03-c (redirects to misc-static-assert) <cert-dcl03-c>
@@ -121,7 +125,7 @@ Clang-Tidy Checks
hicpp-signed-bitwise
hicpp-special-member-functions (redirects to cppcoreguidelines-special-member-functions) <hicpp-special-member-functions>
hicpp-static-assert (redirects to misc-static-assert) <hicpp-static-assert>
- hicpp-undelegated-constructor (redirects to misc-undelegated-constructor) <hicpp-undelegated-constructor>
+ hicpp-undelegated-constructor (redirects to bugprone-undelegated-constructor) <hicpp-undelegated-constructor>
hicpp-use-auto (redirects to modernize-use-auto) <hicpp-use-auto>
hicpp-use-emplace (redirects to modernize-use-emplace) <hicpp-use-emplace>
hicpp-use-equals-default (redirects to modernize-use-equals-default) <hicpp-use-equals-default>
@@ -143,12 +147,8 @@ Clang-Tidy Checks
misc-sizeof-container
misc-sizeof-expression
misc-static-assert
- misc-suspicious-semicolon
- misc-suspicious-string-compare
- misc-swapped-arguments
misc-throw-by-value-catch-by-reference
misc-unconventional-assign-operator
- misc-undelegated-constructor
misc-uniqueptr-reset-release
misc-unused-alias-decls
misc-unused-parameters
Removed: clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-semicolon.rst (removed)
@@ -1,72 +0,0 @@
-.. title:: clang-tidy - misc-suspicious-semicolon
-
-misc-suspicious-semicolon
-=========================
-
-Finds most instances of stray semicolons that unexpectedly alter the meaning of
-the code. More specifically, it looks for ``if``, ``while``, ``for`` and
-``for-range`` statements whose body is a single semicolon, and then analyzes the
-context of the code (e.g. indentation) in an attempt to determine whether that
-is intentional.
-
- .. code-block:: c++
-
- if (x < y);
- {
- x++;
- }
-
-Here the body of the ``if`` statement consists of only the semicolon at the end
-of the first line, and `x` will be incremented regardless of the condition.
-
-
- .. code-block:: c++
-
- while ((line = readLine(file)) != NULL);
- processLine(line);
-
-As a result of this code, `processLine()` will only be called once, when the
-``while`` loop with the empty body exits with `line == NULL`. The indentation of
-the code indicates the intention of the programmer.
-
-
- .. code-block:: c++
-
- if (x >= y);
- x -= y;
-
-While the indentation does not imply any nesting, there is simply no valid
-reason to have an `if` statement with an empty body (but it can make sense for
-a loop). So this check issues a warning for the code above.
-
-To solve the issue remove the stray semicolon or in case the empty body is
-intentional, reflect this using code indentation or put the semicolon in a new
-line. For example:
-
- .. code-block:: c++
-
- while (readWhitespace());
- Token t = readNextToken();
-
-Here the second line is indented in a way that suggests that it is meant to be
-the body of the `while` loop - whose body is in fact empty, because of the
-semicolon at the end of the first line.
-
-Either remove the indentation from the second line:
-
- .. code-block:: c++
-
- while (readWhitespace());
- Token t = readNextToken();
-
-... or move the semicolon from the end of the first line to a new line:
-
- .. code-block:: c++
-
- while (readWhitespace())
- ;
-
- Token t = readNextToken();
-
-In this case the check will assume that you know what you are doing, and will
-not raise a warning.
Removed: clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/misc-suspicious-string-compare.rst (removed)
@@ -1,64 +0,0 @@
-.. title:: clang-tidy - misc-suspicious-string-compare
-
-misc-suspicious-string-compare
-==============================
-
-Find suspicious usage of runtime string comparison functions.
-This check is valid in C and C++.
-
-Checks for calls with implicit comparator and proposed to explicitly add it.
-
-.. code-block:: c++
-
- if (strcmp(...)) // Implicitly compare to zero
- if (!strcmp(...)) // Won't warn
- if (strcmp(...) != 0) // Won't warn
-
-Checks that compare function results (i,e, ``strcmp``) are compared to valid
-constant. The resulting value is
-
-.. code::
-
- < 0 when lower than,
- > 0 when greater than,
- == 0 when equals.
-
-A common mistake is to compare the result to `1` or `-1`.
-
-.. code-block:: c++
-
- if (strcmp(...) == -1) // Incorrect usage of the returned value.
-
-Additionally, the check warns if the results value is implicitly cast to a
-*suspicious* non-integer type. It's happening when the returned value is used in
-a wrong context.
-
-.. code-block:: c++
-
- if (strcmp(...) < 0.) // Incorrect usage of the returned value.
-
-Options
--------
-
-.. option:: WarnOnImplicitComparison
-
- When non-zero, the check will warn on implicit comparison. `1` by default.
-
-.. option:: WarnOnLogicalNotComparison
-
- When non-zero, the check will warn on logical not comparison. `0` by default.
-
-.. option:: StringCompareLikeFunctions
-
- A string specifying the comma-separated names of the extra string comparison
- functions. Default is an empty string.
- The check will detect the following string comparison functions:
- `__builtin_memcmp`, `__builtin_strcasecmp`, `__builtin_strcmp`,
- `__builtin_strncasecmp`, `__builtin_strncmp`, `_mbscmp`, `_mbscmp_l`,
- `_mbsicmp`, `_mbsicmp_l`, `_mbsnbcmp`, `_mbsnbcmp_l`, `_mbsnbicmp`,
- `_mbsnbicmp_l`, `_mbsncmp`, `_mbsncmp_l`, `_mbsnicmp`, `_mbsnicmp_l`,
- `_memicmp`, `_memicmp_l`, `_stricmp`, `_stricmp_l`, `_strnicmp`,
- `_strnicmp_l`, `_wcsicmp`, `_wcsicmp_l`, `_wcsnicmp`, `_wcsnicmp_l`,
- `lstrcmp`, `lstrcmpi`, `memcmp`, `memicmp`, `strcasecmp`, `strcmp`,
- `strcmpi`, `stricmp`, `strncasecmp`, `strncmp`, `strnicmp`, `wcscasecmp`,
- `wcscmp`, `wcsicmp`, `wcsncmp`, `wcsnicmp`, `wmemcmp`.
Removed: clang-tools-extra/trunk/docs/clang-tidy/checks/misc-swapped-arguments.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/misc-swapped-arguments.rst?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-swapped-arguments.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/misc-swapped-arguments.rst (removed)
@@ -1,7 +0,0 @@
-.. title:: clang-tidy - misc-swapped-arguments
-
-misc-swapped-arguments
-======================
-
-
-Finds potentially swapped arguments by looking at implicit conversions.
Removed: clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst (original)
+++ clang-tools-extra/trunk/docs/clang-tidy/checks/misc-undelegated-constructor.rst (removed)
@@ -1,11 +0,0 @@
-.. title:: clang-tidy - misc-undelegated-constructor
-
-misc-undelegated-constructor
-============================
-
-
-Finds creation of temporary objects in constructors that look like a
-function call to another constructor of the same class.
-
-The user most likely meant to use a delegating constructor or base class
-initializer.
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon-fail.cpp (from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon-fail.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon-fail.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon-fail.cpp Wed Feb 28 15:47:15 2018
@@ -1,7 +1,7 @@
-// RUN: clang-tidy %s -checks="-*,misc-suspicious-semicolon" -- -DERROR 2>&1 \
+// RUN: clang-tidy %s -checks="-*,bugprone-suspicious-semicolon" -- -DERROR 2>&1 \
// RUN: | FileCheck %s -check-prefix=CHECK-ERROR \
// RUN: -implicit-check-not="{{warning|error}}:"
-// RUN: clang-tidy %s -checks="-*,misc-suspicious-semicolon,clang-diagnostic*" \
+// RUN: clang-tidy %s -checks="-*,bugprone-suspicious-semicolon,clang-diagnostic*" \
// RUN: -- -DWERROR -Wno-everything -Werror=unused-variable 2>&1 \
// RUN: | FileCheck %s -check-prefix=CHECK-WERROR \
// RUN: -implicit-check-not="{{warning|error}}:"
@@ -13,7 +13,7 @@ bool g();
void f() {
if (g());
- // CHECK-WERROR: :[[@LINE-1]]:11: warning: potentially unintended semicolon [misc-suspicious-semicolon]
+ // CHECK-WERROR: :[[@LINE-1]]:11: warning: potentially unintended semicolon [bugprone-suspicious-semicolon]
#if ERROR
int a
// CHECK-ERROR: :[[@LINE-1]]:8: error: expected ';' at end of declaration [clang-diagnostic-error]
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon.cpp (from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-semicolon.cpp Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-suspicious-semicolon %t
+// RUN: %check_clang_tidy %s bugprone-suspicious-semicolon %t
int x = 5;
@@ -26,7 +26,7 @@ void correct3()
void fail1()
{
if(x > 5); nop();
- // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: potentially unintended semicolon [misc-suspicious-semicolon]
+ // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: potentially unintended semicolon [bugprone-suspicious-semicolon]
// CHECK-FIXES: if(x > 5) nop();
}
@@ -34,7 +34,7 @@ void fail2()
{
if(x == 5);
nop();
- // CHECK-MESSAGES: :[[@LINE-2]]:12: warning: potentially unintended semicolon [misc-suspicious-semicolon]
+ // CHECK-MESSAGES: :[[@LINE-2]]:12: warning: potentially unintended semicolon [bugprone-suspicious-semicolon]
// CHECK-FIXES: if(x == 5){{$}}
}
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.c (from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.c?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.c&p1=clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.c Wed Feb 28 15:47:15 2018
@@ -1,7 +1,7 @@
-// RUN: %check_clang_tidy %s misc-suspicious-string-compare %t -- \
+// RUN: %check_clang_tidy %s bugprone-suspicious-string-compare %t -- \
// RUN: -config='{CheckOptions: \
-// RUN: [{key: misc-suspicious-string-compare.WarnOnImplicitComparison, value: 1}, \
-// RUN: {key: misc-suspicious-string-compare.WarnOnLogicalNotComparison, value: 1}]}' \
+// RUN: [{key: bugprone-suspicious-string-compare.WarnOnImplicitComparison, value: 1}, \
+// RUN: {key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison, value: 1}]}' \
// RUN: -- -std=c99
static const char A[] = "abc";
@@ -11,7 +11,7 @@ int strcmp(const char *, const char *);
int test_warning_patterns() {
if (strcmp(A, "a"))
return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result [misc-suspicious-string-compare]
+ // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare]
// CHECK-FIXES: if (strcmp(A, "a") != 0)
if (strcmp(A, "a") != 0 ||
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.cpp (from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-suspicious-string-compare.cpp Wed Feb 28 15:47:15 2018
@@ -1,7 +1,7 @@
-// RUN: %check_clang_tidy %s misc-suspicious-string-compare %t -- \
+// RUN: %check_clang_tidy %s bugprone-suspicious-string-compare %t -- \
// RUN: -config='{CheckOptions: \
-// RUN: [{key: misc-suspicious-string-compare.WarnOnImplicitComparison, value: 1}, \
-// RUN: {key: misc-suspicious-string-compare.WarnOnLogicalNotComparison, value: 1}]}' \
+// RUN: [{key: bugprone-suspicious-string-compare.WarnOnImplicitComparison, value: 1}, \
+// RUN: {key: bugprone-suspicious-string-compare.WarnOnLogicalNotComparison, value: 1}]}' \
// RUN: --
typedef __SIZE_TYPE__ size;
@@ -61,7 +61,7 @@ int _mbsnbicmp_l(const unsigned char *,
int test_warning_patterns() {
if (strcmp(A, "a"))
return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result [misc-suspicious-string-compare]
+ // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result [bugprone-suspicious-string-compare]
// CHECK-FIXES: if (strcmp(A, "a") != 0)
if (strcmp(A, "a") == 0 ||
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-swapped-arguments.cpp (from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-swapped-arguments.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-swapped-arguments.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-swapped-arguments.cpp Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-swapped-arguments %t
+// RUN: %check_clang_tidy %s bugprone-swapped-arguments %t
void F(int, double);
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor-cxx98.cpp (from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor-cxx98.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor-cxx98.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor-cxx98.cpp Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-// RUN: clang-tidy %s -checks=-*,misc-undelegated-constructor -- -std=c++98 | count 0
+// RUN: clang-tidy %s -checks=-*,bugprone-undelegated-constructor -- -std=c++98 | count 0
// Note: this test expects no diagnostics, but FileCheck cannot handle that,
// hence the use of | count 0.
Copied: clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor.cpp (from r326384, clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp)
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor.cpp?p2=clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor.cpp&p1=clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp&r1=326384&r2=326386&rev=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/bugprone-undelegated-constructor.cpp Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-undelegated-constructor %t
+// RUN: %check_clang_tidy %s bugprone-undelegated-constructor %t
struct Ctor;
Ctor foo();
@@ -9,7 +9,7 @@ struct Ctor {
Ctor(int, int);
Ctor(Ctor *i) {
Ctor();
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor? A temporary object is created here instead [misc-undelegated-constructor]
+// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor? A temporary object is created here instead [bugprone-undelegated-constructor]
Ctor(0);
// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor?
Ctor(1, 2);
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon-fail.cpp (removed)
@@ -1,26 +0,0 @@
-// RUN: clang-tidy %s -checks="-*,misc-suspicious-semicolon" -- -DERROR 2>&1 \
-// RUN: | FileCheck %s -check-prefix=CHECK-ERROR \
-// RUN: -implicit-check-not="{{warning|error}}:"
-// RUN: clang-tidy %s -checks="-*,misc-suspicious-semicolon,clang-diagnostic*" \
-// RUN: -- -DWERROR -Wno-everything -Werror=unused-variable 2>&1 \
-// RUN: | FileCheck %s -check-prefix=CHECK-WERROR \
-// RUN: -implicit-check-not="{{warning|error}}:"
-
-// Note: This test verifies that, the checker does not emit any warning for
-// files that do not compile.
-
-bool g();
-
-void f() {
- if (g());
- // CHECK-WERROR: :[[@LINE-1]]:11: warning: potentially unintended semicolon [misc-suspicious-semicolon]
-#if ERROR
- int a
- // CHECK-ERROR: :[[@LINE-1]]:8: error: expected ';' at end of declaration [clang-diagnostic-error]
-#elif WERROR
- int a;
- // CHECK-WERROR: :[[@LINE-1]]:7: error: unused variable 'a' [clang-diagnostic-unused-variable]
-#else
-#error "One of ERROR or WERROR should be defined.
-#endif
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-semicolon.cpp (removed)
@@ -1,117 +0,0 @@
-// RUN: %check_clang_tidy %s misc-suspicious-semicolon %t
-
-int x = 5;
-
-void nop();
-
-void correct1()
-{
- if(x < 5) nop();
-}
-
-void correct2()
-{
- if(x == 5)
- nop();
-}
-
-void correct3()
-{
- if(x > 5)
- {
- nop();
- }
-}
-
-void fail1()
-{
- if(x > 5); nop();
- // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: potentially unintended semicolon [misc-suspicious-semicolon]
- // CHECK-FIXES: if(x > 5) nop();
-}
-
-void fail2()
-{
- if(x == 5);
- nop();
- // CHECK-MESSAGES: :[[@LINE-2]]:12: warning: potentially unintended semicolon [misc-suspicious-semicolon]
- // CHECK-FIXES: if(x == 5){{$}}
-}
-
-void fail3()
-{
- if(x < 5);
- {
- nop();
- }
- // CHECK-MESSAGES: :[[@LINE-4]]:11: warning: potentially unintended semicolon
- // CHECK-FIXES: if(x < 5){{$}}
-}
-
-void correct4()
-{
- while(x % 5 == 1);
- nop();
-}
-
-void correct5()
-{
- for(int i = 0; i < x; ++i)
- ;
-}
-
-void fail4()
-{
- for(int i = 0; i < x; ++i);
- nop();
- // CHECK-MESSAGES: :[[@LINE-2]]:28: warning: potentially unintended semicolon
- // CHECK-FIXES: for(int i = 0; i < x; ++i){{$}}
-}
-
-void fail5()
-{
- if(x % 5 == 1);
- nop();
- // CHECK-MESSAGES: :[[@LINE-2]]:16: warning: potentially unintended semicolon
- // CHECK-FIXES: if(x % 5 == 1){{$}}
-}
-
-void fail6() {
- int a = 0;
- if (a != 0) {
- } else if (a != 1);
- a = 2;
- // CHECK-MESSAGES: :[[@LINE-2]]:21: warning: potentially unintended semicolon
- // CHECK-FIXES: } else if (a != 1){{$}}
-}
-
-void fail7() {
- if (true)
- ;
- // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: potentially unintended semicolon
-}
-
-void correct6()
-{
- do; while(false);
-}
-
-int correct7()
-{
- int t_num = 0;
- char c = 'b';
- char *s = "a";
- if (s == "(" || s != "'" || c == '"') {
- t_num += 3;
- return (c == ')' && c == '\'');
- }
-
- return 0;
-}
-
-void correct8() {
- if (true)
- ;
- else {
- }
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.c (removed)
@@ -1,79 +0,0 @@
-// RUN: %check_clang_tidy %s misc-suspicious-string-compare %t -- \
-// RUN: -config='{CheckOptions: \
-// RUN: [{key: misc-suspicious-string-compare.WarnOnImplicitComparison, value: 1}, \
-// RUN: {key: misc-suspicious-string-compare.WarnOnLogicalNotComparison, value: 1}]}' \
-// RUN: -- -std=c99
-
-static const char A[] = "abc";
-
-int strcmp(const char *, const char *);
-
-int test_warning_patterns() {
- if (strcmp(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result [misc-suspicious-string-compare]
- // CHECK-FIXES: if (strcmp(A, "a") != 0)
-
- if (strcmp(A, "a") != 0 ||
- strcmp(A, "b"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result
- // CHECK-FIXES: strcmp(A, "b") != 0)
-
- if (strcmp(A, "a") == 1)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (strcmp(A, "a") == -1)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (strcmp(A, "a") < '0')
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (strcmp(A, "a") < 0.)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' has suspicious implicit cast
-
- if (!strcmp(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:8: warning: function 'strcmp' is compared using logical not operator
- // CHECK-FIXES: if (strcmp(A, "a") == 0)
-}
-
-void test_structure_patterns() {
- if (strcmp(A, "a")) {}
- // CHECK-MESSAGES: [[@LINE-1]]:7: warning: function 'strcmp' is called without explicitly comparing result
- // CHECK-FIXES: if (strcmp(A, "a") != 0) {}
-
- while (strcmp(A, "a")) {}
- // CHECK-MESSAGES: [[@LINE-1]]:10: warning: function 'strcmp' is called without explicitly comparing result
- // CHECK-FIXES: while (strcmp(A, "a") != 0) {}
-
- for (;strcmp(A, "a");) {}
- // CHECK-MESSAGES: [[@LINE-1]]:9: warning: function 'strcmp' is called without explicitly comparing result
- // CHECK-FIXES: for (;strcmp(A, "a") != 0;) {}
-}
-
-int test_valid_patterns() {
- // The following cases are valid.
- if (strcmp(A, "a") < 0) return 0;
- if (strcmp(A, "a") == 0) return 0;
- if (strcmp(A, "a") <= 0) return 0;
- if (strcmp(A, "a") == strcmp(A, "b")) return 0;
- return 1;
-}
-
-int wrapper(const char* a, const char* b) {
- return strcmp(a, b);
-}
-
-int assignment_wrapper(const char* a, const char* b) {
- int cmp = strcmp(a, b);
- return cmp;
-}
-
-int condexpr_wrapper(const char* a, const char* b) {
- return (a < b) ? strcmp(a, b) : strcmp(b, a);
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-suspicious-string-compare.cpp (removed)
@@ -1,337 +0,0 @@
-// RUN: %check_clang_tidy %s misc-suspicious-string-compare %t -- \
-// RUN: -config='{CheckOptions: \
-// RUN: [{key: misc-suspicious-string-compare.WarnOnImplicitComparison, value: 1}, \
-// RUN: {key: misc-suspicious-string-compare.WarnOnLogicalNotComparison, value: 1}]}' \
-// RUN: --
-
-typedef __SIZE_TYPE__ size;
-
-struct locale_t {
- void* dummy;
-} locale;
-
-static const char A[] = "abc";
-static const unsigned char U[] = "abc";
-static const unsigned char V[] = "xyz";
-static const wchar_t W[] = L"abc";
-
-int strlen(const char *);
-
-int memcmp(const void *, const void *, size);
-int wmemcmp(const wchar_t *, const wchar_t *, size);
-int memicmp(const void *, const void *, size);
-int _memicmp(const void *, const void *, size);
-int _memicmp_l(const void *, const void *, size, locale_t);
-
-int strcmp(const char *, const char *);
-int strncmp(const char *, const char *, size);
-int strcasecmp(const char *, const char *);
-int strncasecmp(const char *, const char *, size);
-int stricmp(const char *, const char *);
-int strcmpi(const char *, const char *);
-int strnicmp(const char *, const char *, size);
-int _stricmp(const char *, const char * );
-int _strnicmp(const char *, const char *, size);
-int _stricmp_l(const char *, const char *, locale_t);
-int _strnicmp_l(const char *, const char *, size, locale_t);
-
-int wcscmp(const wchar_t *, const wchar_t *);
-int wcsncmp(const wchar_t *, const wchar_t *, size);
-int wcscasecmp(const wchar_t *, const wchar_t *);
-int wcsicmp(const wchar_t *, const wchar_t *);
-int wcsnicmp(const wchar_t *, const wchar_t *, size);
-int _wcsicmp(const wchar_t *, const wchar_t *);
-int _wcsnicmp(const wchar_t *, const wchar_t *, size);
-int _wcsicmp_l(const wchar_t *, const wchar_t *, locale_t);
-int _wcsnicmp_l(const wchar_t *, const wchar_t *, size, locale_t);
-
-int _mbscmp(const unsigned char *, const unsigned char *);
-int _mbsncmp(const unsigned char *, const unsigned char *, size);
-int _mbsnbcmp(const unsigned char *, const unsigned char *, size);
-int _mbsnbicmp(const unsigned char *, const unsigned char *, size);
-int _mbsicmp(const unsigned char *, const unsigned char *);
-int _mbsnicmp(const unsigned char *, const unsigned char *, size);
-int _mbscmp_l(const unsigned char *, const unsigned char *, locale_t);
-int _mbsncmp_l(const unsigned char *, const unsigned char *, size, locale_t);
-int _mbsicmp_l(const unsigned char *, const unsigned char *, locale_t);
-int _mbsnicmp_l(const unsigned char *, const unsigned char *, size, locale_t);
-int _mbsnbcmp_l(const unsigned char *, const unsigned char *, size, locale_t);
-int _mbsnbicmp_l(const unsigned char *, const unsigned char *, size, locale_t);
-
-int test_warning_patterns() {
- if (strcmp(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result [misc-suspicious-string-compare]
- // CHECK-FIXES: if (strcmp(A, "a") != 0)
-
- if (strcmp(A, "a") == 0 ||
- strcmp(A, "b"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result
- // CHECK-FIXES: strcmp(A, "b") != 0)
-
- if (strcmp(A, "a") == 1)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (strcmp(A, "a") == -1)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (strcmp(A, "a") == true)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (strcmp(A, "a") < '0')
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (strcmp(A, "a") < 0.)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' has suspicious implicit cast
-}
-
-int test_valid_patterns() {
- // The following cases are valid.
- if (strcmp(A, "a") < 0)
- return 0;
- if (strcmp(A, "a") == 0)
- return 0;
- if (strcmp(A, "a") <= 0)
- return 0;
-
- if (wcscmp(W, L"a") < 0)
- return 0;
- if (wcscmp(W, L"a") == 0)
- return 0;
- if (wcscmp(W, L"a") <= 0)
- return 0;
-
- return 1;
-}
-
-int test_implicit_compare_with_functions() {
-
- if (memcmp(A, "a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'memcmp' is called without explicitly comparing result
- // CHECK-FIXES: memcmp(A, "a", 1) != 0)
-
- if (wmemcmp(W, L"a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'wmemcmp' is called without explicitly comparing result
- // CHECK-FIXES: wmemcmp(W, L"a", 1) != 0)
-
- if (memicmp(A, "a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'memicmp' is called without explicitly comparing result
- // CHECK-FIXES: memicmp(A, "a", 1) != 0)
-
- if (_memicmp(A, "a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_memicmp' is called without explicitly comparing result
- // CHECK-FIXES: _memicmp(A, "a", 1) != 0)
-
- if (_memicmp_l(A, "a", 1, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_memicmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _memicmp_l(A, "a", 1, locale) != 0)
-
- if (strcmp(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result
- // CHECK-FIXES: strcmp(A, "a") != 0)
-
- if (strncmp(A, "a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strncmp' is called without explicitly comparing result
- // CHECK-FIXES: strncmp(A, "a", 1) != 0)
-
- if (strcasecmp(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcasecmp' is called without explicitly comparing result
- // CHECK-FIXES: strcasecmp(A, "a") != 0)
-
- if (strncasecmp(A, "a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strncasecmp' is called without explicitly comparing result
- // CHECK-FIXES: strncasecmp(A, "a", 1) != 0)
-
- if (stricmp(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'stricmp' is called without explicitly comparing result
- // CHECK-FIXES: stricmp(A, "a") != 0)
-
- if (strcmpi(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmpi' is called without explicitly comparing result
- // CHECK-FIXES: strcmpi(A, "a") != 0)
-
- if (_stricmp(A, "a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_stricmp' is called without explicitly comparing result
- // CHECK-FIXES: _stricmp(A, "a") != 0)
-
- if (strnicmp(A, "a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strnicmp' is called without explicitly comparing result
- // CHECK-FIXES: strnicmp(A, "a", 1) != 0)
-
- if (_strnicmp(A, "a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_strnicmp' is called without explicitly comparing result
- // CHECK-FIXES: _strnicmp(A, "a", 1) != 0)
-
- if (_stricmp_l(A, "a", locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_stricmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _stricmp_l(A, "a", locale) != 0)
-
- if (_strnicmp_l(A, "a", 1, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_strnicmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _strnicmp_l(A, "a", 1, locale) != 0)
-
- if (wcscmp(W, L"a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'wcscmp' is called without explicitly comparing result
- // CHECK-FIXES: wcscmp(W, L"a") != 0)
-
- if (wcsncmp(W, L"a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'wcsncmp' is called without explicitly comparing result
- // CHECK-FIXES: wcsncmp(W, L"a", 1) != 0)
-
- if (wcscasecmp(W, L"a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'wcscasecmp' is called without explicitly comparing result
- // CHECK-FIXES: wcscasecmp(W, L"a") != 0)
-
- if (wcsicmp(W, L"a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'wcsicmp' is called without explicitly comparing result
- // CHECK-FIXES: wcsicmp(W, L"a") != 0)
-
- if (_wcsicmp(W, L"a"))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_wcsicmp' is called without explicitly comparing result
- // CHECK-FIXES: _wcsicmp(W, L"a") != 0)
-
- if (_wcsicmp_l(W, L"a", locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_wcsicmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _wcsicmp_l(W, L"a", locale) != 0)
-
- if (wcsnicmp(W, L"a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'wcsnicmp' is called without explicitly comparing result
- // CHECK-FIXES: wcsnicmp(W, L"a", 1) != 0)
-
- if (_wcsnicmp(W, L"a", 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_wcsnicmp' is called without explicitly comparing result
- // CHECK-FIXES: _wcsnicmp(W, L"a", 1) != 0)
-
- if (_wcsnicmp_l(W, L"a", 1, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_wcsnicmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _wcsnicmp_l(W, L"a", 1, locale) != 0)
-
- if (_mbscmp(U, V))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbscmp' is called without explicitly comparing result
- // CHECK-FIXES: _mbscmp(U, V) != 0)
-
- if (_mbsncmp(U, V, 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsncmp' is called without explicitly comparing result
- // CHECK-FIXES: _mbsncmp(U, V, 1) != 0)
-
- if (_mbsnbcmp(U, V, 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsnbcmp' is called without explicitly comparing result
- // CHECK-FIXES: _mbsnbcmp(U, V, 1) != 0)
-
- if (_mbsnbicmp(U, V, 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsnbicmp' is called without explicitly comparing result
- // CHECK-FIXES: _mbsnbicmp(U, V, 1) != 0)
-
- if (_mbsicmp(U, V))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsicmp' is called without explicitly comparing result
- // CHECK-FIXES: _mbsicmp(U, V) != 0)
-
- if (_mbsnicmp(U, V, 1))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsnicmp' is called without explicitly comparing result
- // CHECK-FIXES: _mbsnicmp(U, V, 1) != 0)
-
- if (_mbscmp_l(U, V, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbscmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _mbscmp_l(U, V, locale) != 0)
-
- if (_mbsncmp_l(U, V, 1, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsncmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _mbsncmp_l(U, V, 1, locale) != 0)
-
- if (_mbsicmp_l(U, V, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsicmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _mbsicmp_l(U, V, locale) != 0)
-
- if (_mbsnicmp_l(U, V, 1, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsnicmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _mbsnicmp_l(U, V, 1, locale) != 0)
-
- if (_mbsnbcmp_l(U, V, 1, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsnbcmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _mbsnbcmp_l(U, V, 1, locale) != 0)
-
- if (_mbsnbicmp_l(U, V, 1, locale))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function '_mbsnbicmp_l' is called without explicitly comparing result
- // CHECK-FIXES: _mbsnbicmp_l(U, V, 1, locale) != 0)
-
- return 1;
-}
-
-int strcmp_wrapper1(const char* a, const char* b) {
- return strcmp(a, b);
-}
-
-int strcmp_wrapper2(const char* a, const char* b) {
- return (a && b) ? strcmp(a, b) : 0;
-}
-
-#define macro_strncmp(s1, s2, n) \
- (__extension__ (__builtin_constant_p (n) \
- && ((__builtin_constant_p (s1) \
- && strlen (s1) < ((size) (n))) \
- || (__builtin_constant_p (s2) \
- && strlen (s2) < ((size) (n)))) \
- ? strcmp (s1, s2) : strncmp (s1, s2, n)))
-
-int strncmp_macro(const char* a, const char* b) {
- if (macro_strncmp(a, b, 4))
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is called without explicitly comparing result
-
- if (macro_strncmp(a, b, 4) == 2)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' is compared to a suspicious constant
-
- if (macro_strncmp(a, b, 4) <= .0)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: function 'strcmp' has suspicious implicit cast
-
- if (macro_strncmp(a, b, 4) + 0)
- return 0;
- // CHECK-MESSAGES: [[@LINE-2]]:7: warning: results of function 'strcmp' used by operator '+'
-
- return 1;
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-swapped-arguments.cpp (removed)
@@ -1,53 +0,0 @@
-// RUN: %check_clang_tidy %s misc-swapped-arguments %t
-
-void F(int, double);
-
-int SomeFunction();
-
-template <typename T, typename U>
-void G(T a, U b) {
- F(a, b); // no-warning
- F(2.0, 4);
-// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: argument with implicit conversion from 'int' to 'double' followed by argument converted from 'double' to 'int', potentially swapped arguments.
-// CHECK-FIXES: F(4, 2.0)
-}
-
-void foo() {
- F(1.0, 3);
-// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: argument with implicit conversion from 'int' to 'double' followed by argument converted from 'double' to 'int', potentially swapped arguments.
-// CHECK-FIXES: F(3, 1.0)
-
-#define M(x, y) x##y()
-
- double b = 1.0;
- F(b, M(Some, Function));
-// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: argument with implicit conversion from 'int' to 'double' followed by argument converted from 'double' to 'int', potentially swapped arguments.
-// CHECK-FIXES: F(M(Some, Function), b);
-
-#define N F(b, SomeFunction())
-
- N;
-// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: argument with implicit conversion from 'int' to 'double' followed by argument converted from 'double' to 'int', potentially swapped arguments.
-// In macro, don't emit fixits.
-// CHECK-FIXES: #define N F(b, SomeFunction())
-
- G(b, 3);
- G(3, 1.0);
- G(0, 0);
-
- F(1.0, 1.0); // no-warning
- F(3, 1.0); // no-warning
- F(true, false); // no-warning
- F(0, 'c'); // no-warning
-
-#define APPLY(f, x, y) f(x, y)
- APPLY(F, 1.0, 3);
-// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: argument with implicit conversion from 'int' to 'double' followed by argument converted from 'double' to 'int', potentially swapped arguments.
-// CHECK-FIXES: APPLY(F, 3, 1.0);
-
-#define PARAMS 1.0, 3
-#define CALL(P) F(P)
- CALL(PARAMS);
-// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: argument with implicit conversion from 'int' to 'double' followed by argument converted from 'double' to 'int', potentially swapped arguments.
-// In macro, don't emit fixits.
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor-cxx98.cpp (removed)
@@ -1,23 +0,0 @@
-// RUN: clang-tidy %s -checks=-*,misc-undelegated-constructor -- -std=c++98 | count 0
-
-// Note: this test expects no diagnostics, but FileCheck cannot handle that,
-// hence the use of | count 0.
-
-struct Ctor;
-Ctor foo();
-
-struct Ctor {
- Ctor();
- Ctor(int);
- Ctor(int, int);
- Ctor(Ctor *i) {
- Ctor();
- Ctor(0);
- Ctor(1, 2);
- foo();
- }
-};
-
-Ctor::Ctor() {
- Ctor(1);
-}
Removed: clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp?rev=326385&view=auto
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp (original)
+++ clang-tools-extra/trunk/test/clang-tidy/misc-undelegated-constructor.cpp (removed)
@@ -1,54 +0,0 @@
-// RUN: %check_clang_tidy %s misc-undelegated-constructor %t
-
-struct Ctor;
-Ctor foo();
-
-struct Ctor {
- Ctor();
- Ctor(int);
- Ctor(int, int);
- Ctor(Ctor *i) {
- Ctor();
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor? A temporary object is created here instead [misc-undelegated-constructor]
- Ctor(0);
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor?
- Ctor(1, 2);
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor?
- foo();
- }
-};
-
-Ctor::Ctor() {
- Ctor(1);
-// CHECK-MESSAGES: :[[@LINE-1]]:3: warning: did you intend to call a delegated constructor?
-}
-
-Ctor::Ctor(int i) : Ctor(i, 1) {} // properly delegated.
-
-struct Dtor {
- Dtor();
- Dtor(int);
- Dtor(int, int);
- Dtor(Ctor *i) {
- Dtor();
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor?
- Dtor(0);
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor?
- Dtor(1, 2);
-// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: did you intend to call a delegated constructor?
- }
- ~Dtor();
-};
-
-struct Base {};
-struct Derived : public Base {
- Derived() { Base(); }
-// CHECK-MESSAGES: :[[@LINE-1]]:15: warning: did you intend to call a delegated constructor?
-};
-
-template <typename T>
-struct TDerived : public Base {
- TDerived() { Base(); }
-};
-
-TDerived<int> t;
Modified: clang-tools-extra/trunk/test/clang-tidy/objc-arc-and-properties.m
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/objc-arc-and-properties.m?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/objc-arc-and-properties.m (original)
+++ clang-tools-extra/trunk/test/clang-tidy/objc-arc-and-properties.m Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-suspicious-semicolon %t
+// RUN: %check_clang_tidy %s bugprone-suspicious-semicolon %t
// This test checks if Objective-C 2.0 (@properties) and
// Automatic Reference Counting (ARC) are enabled for .m files
@@ -16,6 +16,6 @@
void fail(Foo *f)
{
if(f.shouldDoStuff); [f nop];
- // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: potentially unintended semicolon [misc-suspicious-semicolon]
+ // CHECK-MESSAGES: :[[@LINE-1]]:22: warning: potentially unintended semicolon [bugprone-suspicious-semicolon]
// CHECK-FIXES: if(f.shouldDoStuff) [f nop];
}
Modified: clang-tools-extra/trunk/test/clang-tidy/objc-no-arc-or-properties.m
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/objc-no-arc-or-properties.m?rev=326386&r1=326385&r2=326386&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-tidy/objc-no-arc-or-properties.m (original)
+++ clang-tools-extra/trunk/test/clang-tidy/objc-no-arc-or-properties.m Wed Feb 28 15:47:15 2018
@@ -1,4 +1,4 @@
-// RUN: %check_clang_tidy %s misc-suspicious-semicolon %t -- -- -fno-objc-arc -fobjc-abi-version=1
+// RUN: %check_clang_tidy %s bugprone-suspicious-semicolon %t -- -- -fno-objc-arc -fobjc-abi-version=1
// This test ensures check_clang_tidy.py allows disabling Objective-C ARC and
// Objective-C 2.0 via passing arguments after -- on the command line.
@@ -24,6 +24,6 @@
void fail(Foo *f)
{
if([f shouldDoStuff]); [f nop];
- // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: potentially unintended semicolon [misc-suspicious-semicolon]
+ // CHECK-MESSAGES: :[[@LINE-1]]:24: warning: potentially unintended semicolon [bugprone-suspicious-semicolon]
// CHECK-FIXES: if([f shouldDoStuff]) [f nop];
}
More information about the cfe-commits
mailing list