clang 20.0.0git
Classes | Public Member Functions | List of all members
clang::ento::mpi::MPIBugReporter Class Reference

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h"

Public Member Functions

 MPIBugReporter (const CheckerBase &CB)
 
void reportDoubleNonblocking (const CallEvent &MPICallEvent, const Request &Req, const MemRegion *const RequestRegion, const ExplodedNode *const ExplNode, BugReporter &BReporter) const
 Report duplicate request use by nonblocking calls without intermediate wait.
 
void reportMissingWait (const Request &Req, const MemRegion *const RequestRegion, const ExplodedNode *const ExplNode, BugReporter &BReporter) const
 Report a missing wait for a nonblocking call.
 
void reportUnmatchedWait (const CallEvent &CE, const MemRegion *const RequestRegion, const ExplodedNode *const ExplNode, BugReporter &BReporter) const
 Report a wait on a request that has not been used at all before.
 

Detailed Description

Definition at line 26 of file MPIBugReporter.h.

Constructor & Destructor Documentation

◆ MPIBugReporter()

clang::ento::mpi::MPIBugReporter::MPIBugReporter ( const CheckerBase CB)
inline

Definition at line 28 of file MPIBugReporter.h.

Member Function Documentation

◆ reportDoubleNonblocking()

void clang::ento::mpi::MPIBugReporter::reportDoubleNonblocking ( const CallEvent MPICallEvent,
const Request Req,
const MemRegion *const  RequestRegion,
const ExplodedNode *const  ExplNode,
BugReporter BReporter 
) const

Report duplicate request use by nonblocking calls without intermediate wait.

Parameters
MPICallEventMPI call that caused the double nonblocking
Reqrequest that was used by two nonblocking calls in sequence
RequestRegionmemory region of the request
ExplNodenode in the graph the bug appeared at
BReporterbug reporter for current context

Definition at line 23 of file MPIBugReporter.cpp.

References clang::ento::BugReporter::emitReport(), clang::ento::MemRegion::getDescriptiveName(), clang::ento::CallEvent::getSourceRange(), clang::sema::Report, and clang::ento::MemRegion::sourceRange().

Referenced by clang::ento::mpi::MPIChecker::checkDoubleNonblocking().

◆ reportMissingWait()

void clang::ento::mpi::MPIBugReporter::reportMissingWait ( const Request Req,
const MemRegion *const  RequestRegion,
const ExplodedNode *const  ExplNode,
BugReporter BReporter 
) const

Report a missing wait for a nonblocking call.

Parameters
Reqrequest that is not matched by a wait
RequestRegionmemory region of the request
ExplNodenode in the graph the bug appeared at
BReporterbug reporter for current context

Definition at line 49 of file MPIBugReporter.cpp.

References clang::ento::BugReporter::emitReport(), clang::ento::MemRegion::getDescriptiveName(), clang::sema::Report, and clang::ento::MemRegion::sourceRange().

Referenced by clang::ento::mpi::MPIChecker::checkMissingWaits().

◆ reportUnmatchedWait()

void clang::ento::mpi::MPIBugReporter::reportUnmatchedWait ( const CallEvent CE,
const MemRegion *const  RequestRegion,
const ExplodedNode *const  ExplNode,
BugReporter BReporter 
) const

Report a wait on a request that has not been used at all before.

Parameters
CEwait call that uses the request
RequestRegionmemory region of the request
ExplNodenode in the graph the bug appeared at
BReporterbug reporter for current context

Definition at line 69 of file MPIBugReporter.cpp.

References clang::ento::BugReporter::emitReport(), clang::ento::MemRegion::getDescriptiveName(), clang::ento::CallEvent::getSourceRange(), clang::sema::Report, and clang::ento::MemRegion::sourceRange().

Referenced by clang::ento::mpi::MPIChecker::checkUnmatchedWaits().


The documentation for this class was generated from the following files: