forked from OSchip/llvm-project
MPI-Checker: move MPIFunctionClassifier.h
Summary: This patch moves the MPIFunctionClassifier header to `clang/include/clang/StaticAnalyzer/Checkers`, in order to make it accessible in other parts of the architecture. Reviewers: dcoughlin, zaks.anna Subscribers: alexfh, cfe-commits Patch by Alexander Droste! Differential Revision: https://reviews.llvm.org/D22671 llvm-svn: 276639
This commit is contained in:
parent
080bebd212
commit
c5e509316a
|
@ -43,7 +43,8 @@ void MPIChecker::checkDoubleNonblocking(const CallEvent &PreCallEvent,
|
|||
// double nonblocking detected
|
||||
if (Req && Req->CurrentState == Request::State::Nonblocking) {
|
||||
ExplodedNode *ErrorNode = Ctx.generateNonFatalErrorNode();
|
||||
BReporter.reportDoubleNonblocking(PreCallEvent, *Req, MR, ErrorNode, Ctx.getBugReporter());
|
||||
BReporter.reportDoubleNonblocking(PreCallEvent, *Req, MR, ErrorNode,
|
||||
Ctx.getBugReporter());
|
||||
Ctx.addTransition(ErrorNode->getState(), ErrorNode);
|
||||
}
|
||||
// no error
|
||||
|
@ -85,7 +86,8 @@ void MPIChecker::checkUnmatchedWaits(const CallEvent &PreCallEvent,
|
|||
State = ErrorNode->getState();
|
||||
}
|
||||
// A wait has no matching nonblocking call.
|
||||
BReporter.reportUnmatchedWait(PreCallEvent, ReqRegion, ErrorNode, Ctx.getBugReporter());
|
||||
BReporter.reportUnmatchedWait(PreCallEvent, ReqRegion, ErrorNode,
|
||||
Ctx.getBugReporter());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -118,7 +120,8 @@ void MPIChecker::checkMissingWaits(SymbolReaper &SymReaper,
|
|||
ErrorNode = Ctx.generateNonFatalErrorNode(State, &Tag);
|
||||
State = ErrorNode->getState();
|
||||
}
|
||||
BReporter.reportMissingWait(Req.second, Req.first, ErrorNode, Ctx.getBugReporter());
|
||||
BReporter.reportMissingWait(Req.second, Req.first, ErrorNode,
|
||||
Ctx.getBugReporter());
|
||||
}
|
||||
State = State->remove<RequestMap>(Req.first);
|
||||
}
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
#define LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_MPICHECKER_MPICHECKER_H
|
||||
|
||||
#include "MPIBugReporter.h"
|
||||
#include "MPIFunctionClassifier.h"
|
||||
#include "MPITypes.h"
|
||||
#include "clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h"
|
||||
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
|
||||
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
|
||||
|
||||
|
@ -30,7 +30,7 @@ namespace mpi {
|
|||
|
||||
class MPIChecker : public Checker<check::PreCall, check::DeadSymbols> {
|
||||
public:
|
||||
MPIChecker() : BReporter(*this) { }
|
||||
MPIChecker() : BReporter(*this) {}
|
||||
|
||||
// path-sensitive callbacks
|
||||
void checkPreCall(const CallEvent &CE, CheckerContext &Ctx) const {
|
||||
|
@ -49,7 +49,6 @@ public:
|
|||
return;
|
||||
const_cast<std::unique_ptr<MPIFunctionClassifier> &>(FuncClassifier)
|
||||
.reset(new MPIFunctionClassifier{Ctx.getASTContext()});
|
||||
|
||||
}
|
||||
|
||||
/// Checks if a request is used by nonblocking calls multiple times
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
///
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "MPIFunctionClassifier.h"
|
||||
#include "clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
|
||||
namespace clang {
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#ifndef LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_MPICHECKER_MPITYPES_H
|
||||
#define LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_MPICHECKER_MPITYPES_H
|
||||
|
||||
#include "MPIFunctionClassifier.h"
|
||||
#include "clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h"
|
||||
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
|
||||
#include "llvm/ADT/SmallSet.h"
|
||||
|
||||
|
@ -53,7 +53,6 @@ typedef llvm::ImmutableMap<const clang::ento::MemRegion *,
|
|||
|
||||
} // end of namespace: mpi
|
||||
|
||||
|
||||
template <>
|
||||
struct ProgramStateTrait<mpi::RequestMap>
|
||||
: public ProgramStatePartialTrait<mpi::RequestMapImpl> {
|
||||
|
|
Loading…
Reference in New Issue