clang API Documentation

Public Member Functions | Static Public Member Functions
clang::ento::PathDiagnosticLocation Class Reference

#include <PathDiagnostic.h>

List of all members.

Public Member Functions

 PathDiagnosticLocation ()
 Create an invalid location.
 PathDiagnosticLocation (const Stmt *s, const SourceManager &sm, LocationOrAnalysisDeclContext lac)
 Create a location corresponding to the given statement.
 PathDiagnosticLocation (const Decl *d, const SourceManager &sm)
 Create a location corresponding to the given declaration.
 PathDiagnosticLocation (SourceLocation loc, const SourceManager &sm)
bool operator== (const PathDiagnosticLocation &X) const
bool operator!= (const PathDiagnosticLocation &X) const
bool isValid () const
FullSourceLoc asLocation () const
PathDiagnosticRange asRange () const
const StmtasStmt () const
const DeclasDecl () const
bool hasRange () const
void invalidate ()
void flatten ()
const SourceManagergetManager () const
void Profile (llvm::FoldingSetNodeID &ID) const
void dump () const

Static Public Member Functions

static PathDiagnosticLocation create (const Decl *D, const SourceManager &SM)
 Create a location corresponding to the given declaration.
static PathDiagnosticLocation createBegin (const Decl *D, const SourceManager &SM)
 Create a location for the beginning of the declaration.
static PathDiagnosticLocation createBegin (const Stmt *S, const SourceManager &SM, const LocationOrAnalysisDeclContext LAC)
 Create a location for the beginning of the statement.
static PathDiagnosticLocation createEnd (const Stmt *S, const SourceManager &SM, const LocationOrAnalysisDeclContext LAC)
static PathDiagnosticLocation createOperatorLoc (const BinaryOperator *BO, const SourceManager &SM)
static PathDiagnosticLocation createConditionalColonLoc (const ConditionalOperator *CO, const SourceManager &SM)
static PathDiagnosticLocation createMemberLoc (const MemberExpr *ME, const SourceManager &SM)
static PathDiagnosticLocation createBeginBrace (const CompoundStmt *CS, const SourceManager &SM)
static PathDiagnosticLocation createEndBrace (const CompoundStmt *CS, const SourceManager &SM)
static PathDiagnosticLocation createDeclBegin (const LocationContext *LC, const SourceManager &SM)
static PathDiagnosticLocation createDeclEnd (const LocationContext *LC, const SourceManager &SM)
static PathDiagnosticLocation create (const ProgramPoint &P, const SourceManager &SMng)
 Create a location corresponding to the given valid ExplodedNode.
static PathDiagnosticLocation createEndOfPath (const ExplodedNode *N, const SourceManager &SM)
static PathDiagnosticLocation createSingleLocation (const PathDiagnosticLocation &PDL)
 Convert the given location into a single kind location.
static const StmtgetStmt (const ExplodedNode *N)
 Given an exploded node, retrieve the statement that should be used for the diagnostic location.
static const StmtgetNextStmt (const ExplodedNode *N)
 Retrieve the statement corresponding to the successor node.

Detailed Description

Definition at line 130 of file PathDiagnostic.h.


Constructor & Destructor Documentation

clang::ento::PathDiagnosticLocation::PathDiagnosticLocation ( ) [inline]

Create an invalid location.

Definition at line 154 of file PathDiagnostic.h.

Referenced by create(), and invalidate().

clang::ento::PathDiagnosticLocation::PathDiagnosticLocation ( const Stmt s,
const SourceManager sm,
LocationOrAnalysisDeclContext  lac 
) [inline]

Create a location corresponding to the given statement.

Definition at line 158 of file PathDiagnostic.h.

References clang::SourceRange::isValid().

clang::ento::PathDiagnosticLocation::PathDiagnosticLocation ( const Decl d,
const SourceManager sm 
) [inline]

Create a location corresponding to the given declaration.

Definition at line 172 of file PathDiagnostic.h.

References clang::SourceRange::isValid().

clang::ento::PathDiagnosticLocation::PathDiagnosticLocation ( SourceLocation  loc,
const SourceManager sm 
) [inline]

Create a location at an explicit offset in the source.

This should only be used if there are no more appropriate constructors.

Definition at line 183 of file PathDiagnostic.h.

References clang::SourceRange::isValid().


Member Function Documentation

Definition at line 280 of file PathDiagnostic.h.

References isValid().

static PathDiagnosticLocation clang::ento::PathDiagnosticLocation::create ( const Decl D,
const SourceManager SM 
) [inline, static]

Create a location corresponding to the given declaration.

Definition at line 191 of file PathDiagnostic.h.

References PathDiagnosticLocation().

Referenced by checkObjCUnusedIvar(), and clang::ento::FindLastStoreBRVisitor::VisitNode().

Create a location for the beginning of the statement.

Definition at line 587 of file PathDiagnostic.cpp.

References getValidSourceLocation().

Create a location for the beginning of the compound statement. Assumes the statement has a valid location.

Definition at line 626 of file PathDiagnostic.cpp.

References clang::CompoundStmt::getLBracLoc().

Definition at line 612 of file PathDiagnostic.cpp.

References clang::AbstractConditionalOperator::getColonLoc(), and SM.

Create a location for the beginning of the enclosing declaration body. Defaults to the beginning of the first statement in the declaration body.

Definition at line 640 of file PathDiagnostic.cpp.

References clang::Decl::getBody(), and clang::LocationContext::getDecl().

Constructs a location for the end of the enclosing declaration body. Defaults to the end of brace.

Definition at line 654 of file PathDiagnostic.cpp.

References clang::Decl::getBodyRBrace(), and clang::LocationContext::getDecl().

Create a location for the end of the statement.

If the statement is a CompoundStatement, the location will point to the closing brace instead of following it.

Definition at line 596 of file PathDiagnostic.cpp.

References getValidSourceLocation().

Referenced by create(), createEndOfPath(), and getLocationForCaller().

Create a location for the end of the compound statement. Assumes the statement has a valid location.

Definition at line 633 of file PathDiagnostic.cpp.

References clang::CompoundStmt::getRBracLoc().

Referenced by GenerateAlternateExtensivePathDiagnostic(), and GenerateExtensivePathDiagnostic().

For member expressions, return the location of the '.' or '->'. Assumes the statement has a valid location.

Definition at line 620 of file PathDiagnostic.cpp.

References clang::MemberExpr::getMemberLoc(), and SM.

Referenced by createEndOfPath().

Create the location for the operator of the binary expression. Assumes the statement has a valid location.

Definition at line 606 of file PathDiagnostic.cpp.

References clang::BinaryOperator::getOperatorLoc(), and SM.

Referenced by createEndOfPath(), and GenerateMinimalPathDiagnostic().

Convert the given location into a single kind location.

Definition at line 771 of file PathDiagnostic.cpp.

References asLocation(), and clang::FullSourceLoc::getManager().

Referenced by CompactPathDiagnostic().

const Stmt * PathDiagnosticLocation::getNextStmt ( const ExplodedNode N) [static]

Retrieve the statement corresponding to the successor node.

Definition at line 708 of file PathDiagnostic.cpp.

References clang::BO_LAnd, clang::BO_LOr, clang::ento::ExplodedNode::getFirstSucc(), and S.

Referenced by GenerateMinimalPathDiagnostic().

const Stmt * PathDiagnosticLocation::getStmt ( const ExplodedNode N) [static]

Given an exploded node, retrieve the statement that should be used for the diagnostic location.

Definition at line 692 of file PathDiagnostic.cpp.

References clang::ProgramPoint::getAs(), clang::ento::ExplodedNode::getLocation(), and P.

Referenced by GetCurrentOrPreviousStmt(), and GetPreviousStmt().

Definition at line 284 of file PathDiagnostic.h.

References PathDiagnosticLocation().

Referenced by GenerateAlternateExtensivePathDiagnostic().

bool clang::ento::PathDiagnosticLocation::operator!= ( const PathDiagnosticLocation X) const [inline]

Definition at line 263 of file PathDiagnostic.h.

References X.

bool clang::ento::PathDiagnosticLocation::operator== ( const PathDiagnosticLocation X) const [inline]

Definition at line 259 of file PathDiagnostic.h.

void PathDiagnosticLocation::Profile ( llvm::FoldingSetNodeID &  ID) const

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