clang 22.0.0git
clang::StmtSequence Class Reference

Identifies a list of statements. More...

#include "clang/Analysis/CloneDetection.h"

Public Types

typedef const Stmt *const * iterator

Public Member Functions

 StmtSequence (const CompoundStmt *Stmt, const Decl *D, unsigned StartIndex, unsigned EndIndex)
 Constructs a StmtSequence holding multiple statements.
 StmtSequence (const Stmt *Stmt, const Decl *D)
 Constructs a StmtSequence holding a single statement.
 StmtSequence ()
 Constructs an empty StmtSequence.
iterator begin () const
 Returns an iterator pointing to the first statement in this sequence.
iterator end () const
 Returns an iterator pointing behind the last statement in this sequence.
const Stmtfront () const
 Returns the first statement in this sequence.
const Stmtback () const
 Returns the last statement in this sequence.
unsigned size () const
 Returns the number of statements this object holds.
bool empty () const
 Returns true if and only if this StmtSequence contains no statements.
ASTContextgetASTContext () const
 Returns the related ASTContext for the stored Stmts.
const DeclgetContainingDecl () const
 Returns the declaration that contains the stored Stmts.
bool holdsSequence () const
 Returns true if this objects holds a list of statements.
SourceLocation getBeginLoc () const
 Returns the start sourcelocation of the first statement in this sequence.
SourceLocation getEndLoc () const
 Returns the end sourcelocation of the last statement in this sequence.
SourceRange getSourceRange () const
 Returns the source range of the whole sequence - from the beginning of the first statement to the end of the last statement.
bool operator== (const StmtSequence &Other) const
bool operator!= (const StmtSequence &Other) const
bool contains (const StmtSequence &Other) const
 Returns true if and only if this sequence covers a source range that contains the source range of the given sequence Other.

Detailed Description

Identifies a list of statements.

Can either identify a single arbitrary Stmt object, a continuous sequence of child statements inside a CompoundStmt or no statements at all.

Definition at line 33 of file CloneDetection.h.

Member Typedef Documentation

◆ iterator

typedef const Stmt* const* clang::StmtSequence::iterator

Definition at line 73 of file CloneDetection.h.

Constructor & Destructor Documentation

◆ StmtSequence() [1/3]

StmtSequence::StmtSequence ( const CompoundStmt * Stmt,
const Decl * D,
unsigned StartIndex,
unsigned EndIndex )

Constructs a StmtSequence holding multiple statements.

The resulting StmtSequence identifies a continuous sequence of statements in the body of the given CompoundStmt. Which statements of the body should be identified needs to be specified by providing a start and end index that describe a non-empty sub-array in the body of the given CompoundStmt.

Parameters
StmtA CompoundStmt that contains all statements in its body.
DThe Decl containing this Stmt.
StartIndexThe inclusive start index in the children array of Stmt
EndIndexThe exclusive end index in the children array of Stmt.

Definition at line 22 of file CloneDetection.cpp.

References size().

Referenced by contains(), operator!=(), and operator==().

◆ StmtSequence() [2/3]

StmtSequence::StmtSequence ( const Stmt * Stmt,
const Decl * D )

Constructs a StmtSequence holding a single statement.

Parameters
StmtAn arbitrary Stmt.
DThe Decl containing this Stmt.

Definition at line 30 of file CloneDetection.cpp.

◆ StmtSequence() [3/3]

StmtSequence::StmtSequence ( )

Constructs an empty StmtSequence.

Definition at line 33 of file CloneDetection.cpp.

References clang::nullptr.

Member Function Documentation

◆ back()

const Stmt * clang::StmtSequence::back ( ) const
inline

Returns the last statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 92 of file CloneDetection.h.

References begin(), empty(), and size().

Referenced by getEndLoc().

◆ begin()

StmtSequence::iterator StmtSequence::begin ( ) const

Returns an iterator pointing to the first statement in this sequence.

Definition at line 58 of file CloneDetection.cpp.

References clang::cast(), and holdsSequence().

Referenced by back(), and front().

◆ contains()

bool StmtSequence::contains ( const StmtSequence & Other) const

Returns true if and only if this sequence covers a source range that contains the source range of the given sequence Other.

This method should only be called on a non-empty StmtSequence object and passed a non-empty StmtSequence object.

Definition at line 36 of file CloneDetection.cpp.

References getASTContext(), getBeginLoc(), getEndLoc(), clang::ASTContext::getSourceManager(), clang::Other, SM, and StmtSequence().

◆ empty()

bool clang::StmtSequence::empty ( ) const
inline

Returns true if and only if this StmtSequence contains no statements.

Definition at line 107 of file CloneDetection.h.

References size().

Referenced by back(), and front().

◆ end()

StmtSequence::iterator StmtSequence::end ( ) const

Returns an iterator pointing behind the last statement in this sequence.

Definition at line 66 of file CloneDetection.cpp.

References clang::cast(), and holdsSequence().

◆ front()

const Stmt * clang::StmtSequence::front ( ) const
inline

Returns the first statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 84 of file CloneDetection.h.

References begin(), and empty().

Referenced by getBeginLoc(), and makeLocation().

◆ getASTContext()

ASTContext & StmtSequence::getASTContext ( ) const

Returns the related ASTContext for the stored Stmts.

Definition at line 74 of file CloneDetection.cpp.

Referenced by CollectStmtSequenceData(), and contains().

◆ getBeginLoc()

SourceLocation StmtSequence::getBeginLoc ( ) const

Returns the start sourcelocation of the first statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 79 of file CloneDetection.cpp.

References front(), and clang::Stmt::getBeginLoc().

Referenced by contains(), and getSourceRange().

◆ getContainingDecl()

const Decl * clang::StmtSequence::getContainingDecl ( ) const
inline

Returns the declaration that contains the stored Stmts.

Definition at line 113 of file CloneDetection.h.

Referenced by CollectStmtSequenceData().

◆ getEndLoc()

SourceLocation StmtSequence::getEndLoc ( ) const

Returns the end sourcelocation of the last statement in this sequence.

This method should only be called on a non-empty StmtSequence object.

Definition at line 83 of file CloneDetection.cpp.

References back(), and clang::Stmt::getEndLoc().

Referenced by contains(), and getSourceRange().

◆ getSourceRange()

SourceRange StmtSequence::getSourceRange ( ) const

Returns the source range of the whole sequence - from the beginning of the first statement to the end of the last statement.

Definition at line 85 of file CloneDetection.cpp.

References getBeginLoc(), and getEndLoc().

◆ holdsSequence()

bool clang::StmtSequence::holdsSequence ( ) const
inline

Returns true if this objects holds a list of statements.

Definition at line 119 of file CloneDetection.h.

Referenced by begin(), end(), and size().

◆ operator!=()

bool clang::StmtSequence::operator!= ( const StmtSequence & Other) const
inline

Definition at line 140 of file CloneDetection.h.

References clang::Other, and StmtSequence().

◆ operator==()

bool clang::StmtSequence::operator== ( const StmtSequence & Other) const
inline

Definition at line 135 of file CloneDetection.h.

References clang::Other, and StmtSequence().

◆ size()

unsigned clang::StmtSequence::size ( ) const
inline

Returns the number of statements this object holds.

Definition at line 98 of file CloneDetection.h.

References holdsSequence().

Referenced by back(), empty(), and StmtSequence().


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