class MPIBugReporter

Declaration

class MPIBugReporter { /* full declaration omitted */ };

Declared at: clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h:25

Member Variables

private const std::string MPIError = "MPI Error"
private std::unique_ptr<BugType> UnmatchedWaitBugType
private std::unique_ptr<BugType> MissingWaitBugType
private std::unique_ptr<BugType> DoubleNonblockingBugType

Method Overview

  • public MPIBugReporter(const clang::ento::CheckerBase & CB)
  • public void reportDoubleNonblocking(const clang::ento::CallEvent & MPICallEvent, const clang::ento::mpi::Request & Req, const clang::ento::MemRegion *const RequestRegion, const clang::ento::ExplodedNode *const ExplNode, clang::ento::BugReporter & BReporter) const
  • public void reportMissingWait(const clang::ento::mpi::Request & Req, const clang::ento::MemRegion *const RequestRegion, const clang::ento::ExplodedNode *const ExplNode, clang::ento::BugReporter & BReporter) const
  • public void reportUnmatchedWait(const clang::ento::CallEvent & CE, const clang::ento::MemRegion *const RequestRegion, const clang::ento::ExplodedNode *const ExplNode, clang::ento::BugReporter & BReporter) const

Methods

MPIBugReporter(const clang::ento::CheckerBase& CB)

Declared at: clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h:27

Parameters

const clang::ento::CheckerBase& CB

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

Description

Report duplicate request use by nonblocking calls without intermediate wait.

Declared at: clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h:42

Parameters

const clang::ento::CallEvent& MPICallEvent
MPI call that caused the double nonblocking
const clang::ento::mpi::Request& Req
request that was used by two nonblocking calls in sequence
const clang::ento::MemRegion* const RequestRegion
memory region of the request
const clang::ento::ExplodedNode* const ExplNode
node in the graph the bug appeared at
clang::ento::BugReporter& BReporter
bug reporter for current context

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

Description

Report a missing wait for a nonblocking call.

Declared at: clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h:54

Parameters

const clang::ento::mpi::Request& Req
request that is not matched by a wait
const clang::ento::MemRegion* const RequestRegion
memory region of the request
const clang::ento::ExplodedNode* const ExplNode
node in the graph the bug appeared at
clang::ento::BugReporter& BReporter
bug reporter for current context

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

Description

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

Declared at: clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h:65

Parameters

const clang::ento::CallEvent& CE
wait call that uses the request
const clang::ento::MemRegion* const RequestRegion
memory region of the request
const clang::ento::ExplodedNode* const ExplNode
node in the graph the bug appeared at
clang::ento::BugReporter& BReporter
bug reporter for current context