class PathSensitiveBugReporter

Declaration

class PathSensitiveBugReporter : public BugReporter { /* full declaration omitted */ };

Description

GRBugReporter is used for generating path-sensitive reports.

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:664

Inherits from: BugReporter

Member Variables

private clang::ento::ExprEngine& Eng

Method Overview

  • public PathSensitiveBugReporter(clang::ento::BugReporterData & d, clang::ento::ExprEngine & eng)
  • public void emitReport(std::unique_ptr<BugReport> R)
  • private clang::ento::BugReport * findReportInEquivalenceClass(clang::ento::BugReportEquivClass & eqClass, SmallVectorImpl<clang::ento::BugReport *> & bugReports)
  • private std::unique_ptr<DiagnosticForConsumerMapTy> generateDiagnosticForConsumerMap(clang::ento::BugReport * exampleReport, ArrayRef<clang::ento::PathDiagnosticConsumer *> consumers, ArrayRef<clang::ento::BugReport *> bugReports)
  • public std::unique_ptr<DiagnosticForConsumerMapTy> generatePathDiagnostics(ArrayRef<clang::ento::PathDiagnosticConsumer *> consumers, ArrayRef<clang::ento::PathSensitiveBugReport *> & bugReports)
  • public const clang::ento::ExplodedGraph & getGraph() const
  • public clang::ento::ProgramStateManager & getStateManager() const

Inherited from BugReporter:

Methods

PathSensitiveBugReporter(
    clang::ento::BugReporterData& d,
    clang::ento::ExprEngine& eng)

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:677

Parameters

clang::ento::BugReporterData& d
clang::ento::ExprEngine& eng

void emitReport(std::unique_ptr<BugReport> R)

Description

Add the given report to the set of reports tracked by BugReporter. The reports are usually generated by the checkers. Further, they are folded based on the profile value, which is done to coalesce similar reports.

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:697

Parameters

std::unique_ptr<BugReport> R

clang::ento::BugReport*
findReportInEquivalenceClass(
    clang::ento::BugReportEquivClass& eqClass,
    SmallVectorImpl<clang::ento::BugReport*>&
        bugReports)

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:667

Parameters

clang::ento::BugReportEquivClass& eqClass
SmallVectorImpl<clang::ento::BugReport*>& bugReports

std::unique_ptr<DiagnosticForConsumerMapTy>
generateDiagnosticForConsumerMap(
    clang::ento::BugReport* exampleReport,
    ArrayRef<clang::ento::PathDiagnosticConsumer*>
        consumers,
    ArrayRef<clang::ento::BugReport*> bugReports)

Description

Generate the diagnostics for the given bug report.

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:673

Parameters

clang::ento::BugReport* exampleReport
ArrayRef<clang::ento::PathDiagnosticConsumer*> consumers
ArrayRef<clang::ento::BugReport*> bugReports

std::unique_ptr<DiagnosticForConsumerMapTy>
generatePathDiagnostics(
    ArrayRef<clang::ento::PathDiagnosticConsumer*>
        consumers,
    ArrayRef<
        clang::ento::PathSensitiveBugReport*>&
        bugReports)

Description

\p bugReports A set of bug reports within a *single* equivalence class

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:693

Parameters

ArrayRef<clang::ento::PathDiagnosticConsumer*> consumers
ArrayRef<clang::ento::PathSensitiveBugReport*>& bugReports

Returns

A mapping from consumers to the corresponding diagnostics. Iterates through the bug reports within a single equivalence class, stops at a first non-invalidated report.

const clang::ento::ExplodedGraph& getGraph() const

Description

getGraph - Get the exploded graph created by the analysis engine for the analyzed method or function.

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:682

clang::ento::ProgramStateManager&
getStateManager() const

Description

getStateManager - Return the state manager used by the analysis engine.

Declared at: clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:686