aboutsummaryrefslogtreecommitdiffstats
path: root/src/checks/level0/qgetenv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/checks/level0/qgetenv.cpp')
-rw-r--r--src/checks/level0/qgetenv.cpp32
1 files changed, 9 insertions, 23 deletions
diff --git a/src/checks/level0/qgetenv.cpp b/src/checks/level0/qgetenv.cpp
index 0eb33f8f..cf536e37 100644
--- a/src/checks/level0/qgetenv.cpp
+++ b/src/checks/level0/qgetenv.cpp
@@ -24,7 +24,6 @@
#include "qgetenv.h"
#include "Utils.h"
-#include "checkmanager.h"
#include "StringUtils.h"
#include "FixItUtils.h"
#include <clang/AST/AST.h>
@@ -33,25 +32,17 @@
using namespace clang;
using namespace std;
-enum Fixit {
- FixitNone = 0,
- FixitAll = 0x1 // More granularity isn't needed I guess
-};
-
QGetEnv::QGetEnv(const std::string &name, ClazyContext *context)
- : CheckBase(name, context)
+ : CheckBase(name, context, Option_CanIgnoreIncludes)
{
-
}
-
-
void QGetEnv::VisitStmt(clang::Stmt *stmt)
{
// Lets check only in function calls. Otherwise there are too many false positives, it's common
// to implicit cast to bool when checking pointers for validity, like if (ptr)
- CXXMemberCallExpr *memberCall = dyn_cast<CXXMemberCallExpr>(stmt);
+ auto *memberCall = dyn_cast<CXXMemberCallExpr>(stmt);
if (!memberCall)
return;
@@ -60,7 +51,7 @@ void QGetEnv::VisitStmt(clang::Stmt *stmt)
return;
CXXRecordDecl *record = method->getParent();
- if (!record || record->getNameAsString() != "QByteArray") {
+ if (!record || clazy::name(record) != "QByteArray") {
return;
}
@@ -72,10 +63,10 @@ void QGetEnv::VisitStmt(clang::Stmt *stmt)
FunctionDecl *func = qgetEnvCall->getDirectCallee();
- if (!func || func->getNameAsString() != "qgetenv")
+ if (!func || clazy::name(func) != "qgetenv")
return;
- string methodname = method->getNameAsString();
+ StringRef methodname = clazy::name(method);
string errorMsg;
std::string replacement;
if (methodname == "isEmpty") {
@@ -91,19 +82,14 @@ void QGetEnv::VisitStmt(clang::Stmt *stmt)
if (!errorMsg.empty()) {
std::vector<FixItHint> fixits;
- if (isFixitEnabled(FixitAll)) {
- const bool success = FixItUtils::transformTwoCallsIntoOne(&m_astContext, qgetEnvCall, memberCall, replacement, fixits);
+ if (isFixitEnabled()) {
+ const bool success = clazy::transformTwoCallsIntoOne(&m_astContext, qgetEnvCall, memberCall, replacement, fixits);
if (!success) {
- queueManualFixitWarning(memberCall->getLocStart(), FixitAll);
+ queueManualFixitWarning(getLocStart(memberCall));
}
}
errorMsg += " Use " + replacement + "() instead";
- emitWarning(memberCall->getLocStart(), errorMsg.c_str(), fixits);
+ emitWarning(getLocStart(memberCall), errorMsg.c_str(), fixits);
}
}
-
-
-const char *const s_checkName = "qgetenv";
-REGISTER_CHECK_WITH_FLAGS(s_checkName, QGetEnv, CheckLevel0, RegisteredCheck::Option_Qt4Incompatible)
-REGISTER_FIXIT(FixitAll, "fix-qgetenv", s_checkName)