clang  5.0.0
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
clang::Stmt Class Reference

Stmt - This represents one statement. More...

#include "clang/AST/Stmt.h"

Inheritance diagram for clang::Stmt:
[legend]
Collaboration diagram for clang::Stmt:
[legend]

Classes

class  CallExprBitfields
 
class  CastExprBitfields
 
class  CharacterLiteralBitfields
 
class  CoawaitExprBitfields
 
class  CompoundStmtBitfields
 
struct  ConstExprIterator
 Const iterator for iterating over Stmt * arrays that contain only Expr *. More...
 
class  DeclRefExprBitfields
 
struct  EmptyShell
 A placeholder type used to construct an empty shell of a type, that will be filled in later (e.g., by some de-serialization). More...
 
class  ExprBitfields
 
struct  ExprIterator
 Iterator for iterating over Stmt * arrays that contain only Expr *. More...
 
class  ExprWithCleanupsBitfields
 
class  FloatingLiteralBitfields
 
class  IfStmtBitfields
 
class  InitListExprBitfields
 
class  ObjCIndirectCopyRestoreExprBitfields
 
class  PseudoObjectExprBitfields
 
class  StmtBitfields
 
class  TypeTraitExprBitfields
 
class  UnaryExprOrTypeTraitExprBitfields
 

Public Types

enum  StmtClass { NoStmtClass = 0 }
 
typedef StmtIterator child_iterator
 Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpessions of an AST node. More...
 
typedef ConstStmtIterator const_child_iterator
 
typedef llvm::iterator_range
< child_iterator
child_range
 
typedef llvm::iterator_range
< const_child_iterator
const_child_range
 

Public Member Functions

void * operator new (size_t bytes, const ASTContext &C, unsigned alignment=8)
 
void * operator new (size_t bytes, const ASTContext *C, unsigned alignment=8)
 
void * operator new (size_t bytes, void *mem) noexcept
 
void operator delete (void *, const ASTContext &, unsigned) noexcept
 
void operator delete (void *, const ASTContext *, unsigned) noexcept
 
void operator delete (void *, size_t) noexcept
 
void operator delete (void *, void *) noexcept
 
 Stmt (StmtClass SC)
 
StmtClass getStmtClass () const
 
const char * getStmtClassName () const
 
SourceRange getSourceRange () const LLVM_READONLY
 SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager. More...
 
SourceLocation getLocStart () const LLVM_READONLY
 
SourceLocation getLocEnd () const LLVM_READONLY
 
void dump () const
 Dumps the specified AST fragment and all subtrees to llvm::errs(). More...
 
void dump (SourceManager &SM) const
 
void dump (raw_ostream &OS, SourceManager &SM) const
 
void dump (raw_ostream &OS) const
 
void dumpColor () const
 dumpColor - same as dump(), but forces color highlighting. More...
 
void dumpPretty (const ASTContext &Context) const
 dumpPretty/printPretty - These two methods do a "pretty print" of the AST back to its original source language syntax. More...
 
void printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0) const
 
void viewAST () const
 viewAST - Visualize an AST rooted at this Stmt* using GraphViz. More...
 
StmtIgnoreImplicit ()
 Skip past any implicit AST nodes which might surround this statement, such as ExprWithCleanups or ImplicitCastExpr nodes. More...
 
const StmtIgnoreImplicit () const
 
StmtIgnoreContainers (bool IgnoreCaptured=false)
 Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true. More...
 
const StmtstripLabelLikeStatements () const
 Strip off all label-like statements. More...
 
StmtstripLabelLikeStatements ()
 
child_range children ()
 
const_child_range children () const
 
child_iterator child_begin ()
 
child_iterator child_end ()
 
const_child_iterator child_begin () const
 
const_child_iterator child_end () const
 
void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical) const
 Produce a unique representation of the given statement. More...
 
void ProcessODRHash (llvm::FoldingSetNodeID &ID, ODRHash &Hash) const
 Calculate a unique representation for a statement that is stable across compiler invocations. More...
 

Static Public Member Functions

static void addStmtClass (const StmtClass s)
 
static void EnableStatistics ()
 
static void PrintStats ()
 

Protected Types

enum  { NumStmtBits = 8 }
 
enum  { NumExprBits = 17 }
 
enum  APFloatSemantics {
  IEEEhalf, IEEEsingle, IEEEdouble, x87DoubleExtended,
  IEEEquad, PPCDoubleDouble
}
 

Protected Member Functions

void * operator new (size_t bytes) noexcept
 
void operator delete (void *data) noexcept
 
 Stmt (StmtClass SC, EmptyShell)
 Construct an empty statement. More...
 

Protected Attributes

union {
   StmtBitfields   StmtBits
 
   CompoundStmtBitfields   CompoundStmtBits
 
   IfStmtBitfields   IfStmtBits
 
   ExprBitfields   ExprBits
 
   CharacterLiteralBitfields   CharacterLiteralBits
 
   FloatingLiteralBitfields   FloatingLiteralBits
 
   UnaryExprOrTypeTraitExprBitfields   UnaryExprOrTypeTraitExprBits
 
   DeclRefExprBitfields   DeclRefExprBits
 
   CastExprBitfields   CastExprBits
 
   CallExprBitfields   CallExprBits
 
   ExprWithCleanupsBitfields   ExprWithCleanupsBits
 
   PseudoObjectExprBitfields   PseudoObjectExprBits
 
   ObjCIndirectCopyRestoreExprBitfields   ObjCIndirectCopyRestoreExprBits
 
   InitListExprBitfields   InitListExprBits
 
   TypeTraitExprBitfields   TypeTraitExprBits
 
   CoawaitExprBitfields   CoawaitBits
 
}; 
 

Friends

class ASTStmtReader
 
class ASTStmtWriter
 

Detailed Description

Stmt - This represents one statement.

Definition at line 60 of file Stmt.h.

Member Typedef Documentation

Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpessions of an AST node.

This permits easy iteration over all nodes in the AST.

Definition at line 419 of file Stmt.h.

typedef llvm::iterator_range<child_iterator> clang::Stmt::child_range

Definition at line 422 of file Stmt.h.

Definition at line 420 of file Stmt.h.

Definition at line 423 of file Stmt.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
NumStmtBits 

Definition at line 88 of file Stmt.h.

anonymous enum
protected
Enumerator
NumExprBits 

Definition at line 136 of file Stmt.h.

Enumerator
IEEEhalf 
IEEEsingle 
IEEEdouble 
x87DoubleExtended 
IEEEquad 
PPCDoubleDouble 

Definition at line 145 of file Stmt.h.

Enumerator
NoStmtClass 

Definition at line 62 of file Stmt.h.

Constructor & Destructor Documentation

clang::Stmt::Stmt ( StmtClass  SC,
EmptyShell   
)
inlineexplicitprotected

Construct an empty statement.

Definition at line 349 of file Stmt.h.

clang::Stmt::Stmt ( StmtClass  SC)
inline

Definition at line 352 of file Stmt.h.

References addStmtClass(), and StmtBits.

Member Function Documentation

void Stmt::addStmtClass ( const StmtClass  s)
static

Definition at line 87 of file Stmt.cpp.

References StmtClassNameTable::Counter, and getStmtInfoTableEntry().

Referenced by Stmt().

child_iterator clang::Stmt::child_begin ( )
inline

Definition at line 431 of file Stmt.h.

References children().

Referenced by llvm::GraphTraits< clang::Stmt * >::child_begin(), llvm::GraphTraits< const clang::Stmt * >::child_begin(), clang::OMPExecutableDirective::getAssociatedStmt(), clang::OMPLoopDirective::getCalcLastIteration(), clang::OMPLoopDirective::getCombinedCond(), clang::OMPLoopDirective::getCombinedEnsureUpperBound(), clang::OMPLoopDirective::getCombinedInit(), clang::OMPLoopDirective::getCombinedLowerBoundVariable(), clang::OMPLoopDirective::getCombinedNextLowerBound(), clang::OMPLoopDirective::getCombinedNextUpperBound(), clang::OMPLoopDirective::getCombinedUpperBoundVariable(), clang::OMPLoopDirective::getCond(), clang::OMPLoopDirective::getDistInc(), clang::OMPLoopDirective::getEnsureUpperBound(), clang::OMPAtomicDirective::getExpr(), clang::OMPLoopDirective::getInc(), clang::OMPLoopDirective::getInit(), clang::DesignatedInitExpr::getInit(), clang::OMPLoopDirective::getIsLastIterVariable(), clang::OMPLoopDirective::getIterationVariable(), clang::OMPLoopDirective::getLastIteration(), clang::OMPLoopDirective::getLowerBoundVariable(), clang::OMPLoopDirective::getNextLowerBound(), clang::OMPLoopDirective::getNextUpperBound(), clang::OMPLoopDirective::getNumIterations(), clang::OMPLoopDirective::getPreCond(), clang::OMPLoopDirective::getPreInits(), clang::OMPLoopDirective::getPrevEnsureUpperBound(), clang::OMPLoopDirective::getPrevLowerBoundVariable(), clang::OMPLoopDirective::getPrevUpperBoundVariable(), clang::OMPLoopDirective::getStrideVariable(), clang::OMPAtomicDirective::getUpdateExpr(), clang::OMPLoopDirective::getUpperBoundVariable(), clang::OMPAtomicDirective::getV(), clang::OMPAtomicDirective::getX(), isIdenticalStmt(), clang::OMPExecutableDirective::setAssociatedStmt(), clang::OMPLoopDirective::setCalcLastIteration(), clang::OMPLoopDirective::setCombinedCond(), clang::OMPLoopDirective::setCombinedEnsureUpperBound(), clang::OMPLoopDirective::setCombinedInit(), clang::OMPLoopDirective::setCombinedLowerBoundVariable(), clang::OMPLoopDirective::setCombinedNextLowerBound(), clang::OMPLoopDirective::setCombinedNextUpperBound(), clang::OMPLoopDirective::setCombinedUpperBoundVariable(), clang::OMPLoopDirective::setCond(), clang::OMPLoopDirective::setDistInc(), clang::OMPLoopDirective::setEnsureUpperBound(), clang::OMPLoopDirective::setInc(), clang::OMPLoopDirective::setInit(), clang::DesignatedInitExpr::setInit(), clang::OMPLoopDirective::setIsLastIterVariable(), clang::OMPLoopDirective::setIterationVariable(), clang::OMPLoopDirective::setLastIteration(), clang::OMPLoopDirective::setLowerBoundVariable(), clang::OMPLoopDirective::setNextLowerBound(), clang::OMPLoopDirective::setNextUpperBound(), clang::OMPLoopDirective::setNumIterations(), clang::OMPLoopDirective::setPreCond(), clang::OMPLoopDirective::setPreInits(), clang::OMPLoopDirective::setPrevEnsureUpperBound(), clang::OMPLoopDirective::setPrevLowerBoundVariable(), clang::OMPLoopDirective::setPrevUpperBoundVariable(), clang::OMPLoopDirective::setStrideVariable(), and clang::OMPLoopDirective::setUpperBoundVariable().

const_child_iterator clang::Stmt::child_begin ( ) const
inline

Definition at line 434 of file Stmt.h.

References children().

child_iterator clang::Stmt::child_end ( )
inline
const_child_iterator clang::Stmt::child_end ( ) const
inline

Definition at line 435 of file Stmt.h.

References children().

Stmt::child_range Stmt::children ( )
const_child_range clang::Stmt::children ( ) const
inline

Definition at line 426 of file Stmt.h.

References children().

LLVM_DUMP_METHOD void Stmt::dump ( ) const

Dumps the specified AST fragment and all subtrees to llvm::errs().

Definition at line 2584 of file ASTDumper.cpp.

References P.

Referenced by clang::ento::PathDiagnosticLocation::dump().

LLVM_DUMP_METHOD void Stmt::dump ( SourceManager SM) const

Definition at line 2570 of file ASTDumper.cpp.

References dump().

LLVM_DUMP_METHOD void Stmt::dump ( raw_ostream &  OS,
SourceManager SM 
) const

Definition at line 2574 of file ASTDumper.cpp.

References P.

LLVM_DUMP_METHOD void Stmt::dump ( raw_ostream &  OS) const

Definition at line 2579 of file ASTDumper.cpp.

References P.

LLVM_DUMP_METHOD void Stmt::dumpColor ( ) const

dumpColor - same as dump(), but forces color highlighting.

Definition at line 2589 of file ASTDumper.cpp.

References P.

void Stmt::dumpPretty ( const ASTContext Context) const

dumpPretty/printPretty - These two methods do a "pretty print" of the AST back to its original source language syntax.

Definition at line 2671 of file StmtPrinter.cpp.

References clang::ASTContext::getLangOpts(), and printPretty().

void Stmt::EnableStatistics ( )
static

Definition at line 92 of file Stmt.cpp.

Referenced by clang::ParseAST().

SourceLocation Stmt::getLocEnd ( ) const

Definition at line 270 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnIfStmt(), clang::Sema::ActOnLambdaExpr(), addBlockPointerConversion(), addFunctionPointerConversion(), clang::Sema::BuildCStyleCastExpr(), clang::Sema::BuildCXXFunctionalCastExpr(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::buildLambdaInitCaptureInitialization(), checkArgCount(), CheckFallThroughForBody(), CheckFoldOperand(), clang::Sema::CheckLogicalOperands(), CheckMemorySizeofForComparison(), clang::Sema::CheckObjCBridgeRelatedConversions(), clang::Sema::CheckPointerToMemberOperands(), clang::ento::containsMacro(), clang::Sema::CreateBuiltinBinOp(), clang::InitializationKind::CreateForInit(), CreateIfFixit(), clang::CXXDestructorCall::CXXDestructorCall(), clang::Sema::DefaultVariadicArgumentPromotion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), DiagnoseBitwisePrecedence(), clang::Sema::DiagnoseCommaOperator(), DiagnoseConditionalPrecedence(), DiagnoseDirectIsaAccess(), diagnoseLogicalNotOnLHSofCheck(), DiagnoseNarrowingInInitList(), diagnoseNoViableConversion(), diagnoseObjCLiteralComparison(), clang::Sema::DiagnoseSentinelCalls(), DiagnoseShiftCompare(), diagnoseStringPlusChar(), diagnoseStringPlusInt(), clang::CodeGen::CodeGenFunction::GenerateSEHFilterFunction(), clang::CodeGen::CodeGenFunction::GenerateSEHFinallyFunction(), clang::ObjCIsaExpr::getBaseLocEnd(), clang::CXXTryStmt::getEndLoc(), clang::StmtSequence::getEndLoc(), clang::SEHFinallyStmt::getEndLoc(), clang::SEHTryStmt::getEndLoc(), clang::CXXCatchStmt::getLocEnd(), clang::ObjCStringLiteral::getLocEnd(), clang::ObjCForCollectionStmt::getLocEnd(), clang::ObjCAtCatchStmt::getLocEnd(), clang::ObjCAtFinallyStmt::getLocEnd(), clang::CXXForRangeStmt::getLocEnd(), clang::ObjCAtTryStmt::getLocEnd(), clang::MSDependentExistsStmt::getLocEnd(), clang::ObjCAtThrowStmt::getLocEnd(), clang::ObjCAutoreleasePoolStmt::getLocEnd(), clang::CoroutineBodyStmt::getLocEnd(), clang::CXXStdInitializerListExpr::getLocEnd(), clang::CaseStmt::getLocEnd(), clang::DefaultStmt::getLocEnd(), clang::LabelStmt::getLocEnd(), clang::AttributedStmt::getLocEnd(), clang::OpaqueValueExpr::getLocEnd(), clang::CXXThrowExpr::getLocEnd(), clang::IfStmt::getLocEnd(), clang::SwitchStmt::getLocEnd(), clang::WhileStmt::getLocEnd(), clang::CXXBindTemporaryExpr::getLocEnd(), clang::ForStmt::getLocEnd(), clang::IndirectGotoStmt::getLocEnd(), clang::CXXConstructExpr::getLocEnd(), clang::ReturnStmt::getLocEnd(), clang::CXXFunctionalCastExpr::getLocEnd(), clang::ImaginaryLiteral::getLocEnd(), clang::ObjCIndirectCopyRestoreExpr::getLocEnd(), clang::ObjCBridgedCastExpr::getLocEnd(), clang::UnaryOperator::getLocEnd(), clang::CXXDeleteExpr::getLocEnd(), clang::CapturedStmt::getLocEnd(), clang::MemberExpr::getLocEnd(), clang::CompoundLiteralExpr::getLocEnd(), clang::ImplicitCastExpr::getLocEnd(), clang::CStyleCastExpr::getLocEnd(), clang::ExprWithCleanups::getLocEnd(), clang::BinaryOperator::getLocEnd(), clang::CXXUnresolvedConstructExpr::getLocEnd(), clang::ConditionalOperator::getLocEnd(), clang::BinaryConditionalOperator::getLocEnd(), clang::MaterializeTemporaryExpr::getLocEnd(), clang::CoroutineSuspendExpr::getLocEnd(), clang::DependentCoawaitExpr::getLocEnd(), clang::DesignatedInitExpr::getLocEnd(), clang::DesignatedInitUpdateExpr::getLocEnd(), clang::BlockExpr::getLocEnd(), clang::PseudoObjectExpr::getLocEnd(), clang::EnumConstantDecl::getSourceRange(), clang::BlockDecl::getSourceRange(), getValidSourceLocation(), isNullPointerValueTemplateArgument(), clang::Expr::isUnusedResultAWarning(), clang::ento::ConditionBRVisitor::patternMatch(), rewriteToDictionaryLiteral(), clang::consumed::ConsumedAnalyzer::run(), clang::Sema::SemaBuiltinShuffleVector(), and clang::FunctionDecl::setBody().

SourceLocation Stmt::getLocStart ( ) const

Definition at line 257 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnCallExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXForRangeStmt(), clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnOpenMPDistScheduleClause(), clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnOpenMPOrderedDirective(), clang::Sema::ActOnOpenMPParallelSectionsDirective(), clang::Sema::ActOnOpenMPScheduleClause(), clang::Sema::ActOnOpenMPSectionsDirective(), clang::Sema::ActOnOpenMPTargetDirective(), clang::Sema::AddAllocAlignAttr(), clang::Sema::AddConversionCandidate(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildArrayType(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToObjectOfClassType(), buildCaptureDecl(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXNew(), clang::Sema::BuildInstanceMessage(), clang::Sema::buildLambdaInitCaptureInitialization(), BuildNonArrayForRange(), clang::Sema::BuildOverloadedCallExpr(), clang::Sema::buildOverloadedCallSet(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildVAArgExpr(), clang::canCalleeThrow(), clang::Sema::CanPerformCopyInitialization(), castForMoving(), CastForMoving(), clang::Sema::CheckAddressOfOperand(), checkArgCount(), CheckArrayDesignatorExpr(), CheckAsmLValue(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompareOperands(), checkConditionalVoidType(), clang::Sema::CheckConstexprFunctionBody(), CheckConstexprFunctionStmt(), CheckConvertedConstantExpression(), clang::Sema::CheckCXXDefaultArgExpr(), clang::Sema::checkDeclIsAllowedInOpenMPTarget(), checkDirectCallValidity(), CheckEvalInICE(), checkExprMemoryConstraintCompat(), CheckFallThroughForBody(), CheckFoldOperand(), CheckICE(), clang::Sema::CheckImplementationIvars(), clang::Sema::CheckMemberPointerConversion(), CheckMoveOnConstruction(), CheckNakedParmReference(), CheckNonTypeTemplatePartialSpecializationArgs(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), clang::Sema::CheckObjCBridgeRelatedCast(), clang::Sema::CheckObjCBridgeRelatedConversions(), CheckObjCCollectionLiteralElement(), clang::Sema::checkOpenCLDisabledDecl(), checkOpenCLEnqueueIntType(), checkOpenCLPipeArg(), CheckOpenMPIterationSpace(), checkParamIsIntegerType(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::CheckPointerToMemberOperands(), checkRecursiveFunction(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), CheckStringInit(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), clang::Sema::checkVariadicArgument(), checkVAStartABI(), checkVAStartIsInVariadicFunction(), clang::ento::containsMacro(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinBinOp(), clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::InitializationKind::CreateForInit(), clang::Sema::CreateGenericSelectionExpr(), CreateIfFixit(), clang::Sema::DeduceAutoType(), clang::Sema::deduceVarTypeFromInitializer(), clang::Sema::DefaultVariadicArgumentPromotion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseAssignmentAsCondition(), DiagnoseBitwisePrecedence(), DiagnoseCastQual(), clang::Sema::DiagnoseCommaOperator(), DiagnoseConditionalPrecedence(), clang::Sema::DiagnoseEmptyLoopBody(), diagnoseLogicalNotOnLHSofCheck(), clang::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), diagnoseNoViableConversion(), diagnoseObjCLiteralComparison(), diagnoseRepeatedUseOfWeak(), DiagnoseShiftCompare(), diagnoseStringPlusChar(), diagnoseStringPlusInt(), DiagnoseSwitchLabelsFallthrough(), clang::Sema::DiagnoseUnexpandedParameterPack(), clang::Sema::diagnoseZeroToNullptrConversion(), DiagUninitUse(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), emitOutlinedFunctionPrologue(), clang::CodeGen::CodeGenFunction::EmitStopPoint(), clang::CodeGen::CodeGenModule::ErrorUnsupported(), EvaluateStmt(), evaluateVarDeclInit(), FinishOpenMPLinearClause(), FinishOverloadedCallExpr(), clang::Sema::GatherArgumentsForCall(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), getInitializationLoc(), clang::OMPArraySectionExpr::getLocStart(), clang::CoroutineBodyStmt::getLocStart(), clang::UserDefinedLiteral::getLocStart(), clang::ObjCIvarRefExpr::getLocStart(), clang::CXXStdInitializerListExpr::getLocStart(), clang::ObjCPropertyRefExpr::getLocStart(), clang::MSPropertyRefExpr::getLocStart(), clang::MSPropertySubscriptExpr::getLocStart(), clang::ObjCSubscriptRefExpr::getLocStart(), clang::OpaqueValueExpr::getLocStart(), clang::CXXBindTemporaryExpr::getLocStart(), clang::ObjCIsaExpr::getLocStart(), clang::ImaginaryLiteral::getLocStart(), clang::ObjCIndirectCopyRestoreExpr::getLocStart(), clang::UnaryOperator::getLocStart(), clang::ArraySubscriptExpr::getLocStart(), clang::CapturedStmt::getLocStart(), clang::CallExpr::getLocStart(), clang::MemberExpr::getLocStart(), clang::CompoundLiteralExpr::getLocStart(), clang::ImplicitCastExpr::getLocStart(), clang::ExprWithCleanups::getLocStart(), clang::BinaryOperator::getLocStart(), clang::ConditionalOperator::getLocStart(), clang::CXXDependentScopeMemberExpr::getLocStart(), clang::BinaryConditionalOperator::getLocStart(), clang::UnresolvedMemberExpr::getLocStart(), clang::PackExpansionExpr::getLocStart(), clang::MaterializeTemporaryExpr::getLocStart(), clang::DesignatedInitUpdateExpr::getLocStart(), clang::ExtVectorElementExpr::getLocStart(), clang::PseudoObjectExpr::getLocStart(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), clang::StmtSequence::getStartLoc(), GetUnreachableLoc(), getValidSourceLocation(), handleDiagnoseIfAttr(), handleFallThroughAttr(), handleLoopHintAttr(), handlePassObjectSizeAttr(), clang::Sema::ImpCastExprToType(), clang::InitializationSequence::InitializeFrom(), clang::Sema::InstantiateInClassInitializer(), clang::AnalysisDeclContext::isBodyAutosynthesizedFromModelFile(), isExpandedFromConfigurationMacro(), IsInitializerListConstructorConversion(), clang::Sema::IsIntegralPromotion(), clang::Sema::IsMemberPointerConversion(), isNullPointerValueTemplateArgument(), clang::Sema::IsPointerConversion(), clang::Expr::isUnusedResultAWarning(), IsUserDefinedConversion(), isValidDeadStmt(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), maybeDiagnoseAssignmentToFunction(), clang::ento::ConditionBRVisitor::patternMatch(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformCopyInitialization(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectArgumentInitialization(), clang::ento::ExprEngine::processBranch(), clang::ento::ExprEngine::ProcessStmt(), ProcessStmtAttribute(), clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr(), removePunyEdges(), clang::Sema::ResolveAndFixSingleFunctionTemplateSpecialization(), rewriteToArrayLiteral(), rewriteToDictionaryLiteral(), clang::CodeGen::scanForTargetRegionsFunctions(), SemaBuiltinAnnotation(), SemaBuiltinOverflow(), clang::Sema::SemaBuiltinShuffleVector(), SemaOpenCLBuiltinEnqueueKernel(), SemaOpenCLBuiltinKernelWorkGroupSize(), clang::CodeGen::CodeGenFunction::setBlockContextParameter(), clang::CodeGen::CodeGenFunction::startOutlinedSEHHelper(), clang::Sema::SubstParmVarDecl(), TryClassUnification(), TryCopyInitialization(), TryImplicitConversion(), TryLValueToRValueCast(), TryReferenceInitializationCore(), TryReferenceListInitialization(), TryRefInitWithConversionFunction(), TryTypoCorrectionForCall(), TryUserDefinedConversion(), clang::Sema::VerifyIntegerConstantExpression(), clang::ento::ExprEngine::Visit(), clang::ASTNodeImporter::VisitExpr(), clang::ento::SuppressInlineDefensiveChecksVisitor::VisitNode(), and clang::ASTNodeImporter::VisitStmt().

SourceRange Stmt::getSourceRange ( ) const

SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager.

We assume AST clients will have a pointer to the respective SourceManager.

Definition at line 245 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnAsTypeExpr(), clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCastExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXFoldExpr(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnDesignatedInitializer(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnObjCAtSynchronizedOperand(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnOMPArraySectionExpr(), clang::Sema::ActOnOpenMPAtomicDirective(), clang::Sema::ActOnOpenMPDeclareSimdDirective(), clang::Sema::ActOnOpenMPDistScheduleClause(), clang::Sema::ActOnOpenMPScheduleClause(), clang::Sema::ActOnParamDefaultArgument(), clang::Sema::ActOnStartCXXMemberReference(), clang::Sema::ActOnStartLinkageSpecification(), clang::Sema::AddAlignedAttr(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddAssumeAlignedAttr(), addFixitForObjCARCConversion(), clang::Sema::AddInitializerToDecl(), applyCocoaAPICheck(), clang::Sema::BuildArrayType(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildCallToObjectOfClassType(), buildCoawaitCalls(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::BuildCXXNew(), clang::Sema::BuildDeclaratorGroup(), clang::Sema::BuildDelegatingInitializer(), clang::Sema::BuildExtVectorType(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildMemberInitializer(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), clang::Sema::BuildObjCAtThrowStmt(), clang::Sema::BuildObjCBoxedExpr(), clang::Sema::BuildObjCBridgedCast(), clang::Sema::BuildObjCNumericLiteral(), clang::Sema::BuildObjCStringLiteral(), clang::Sema::BuildOverloadedArrowExpr(), clang::Sema::BuildPseudoDestructorExpr(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildStaticAssertDeclaration(), clang::Sema::BuildUnresolvedCoawaitExpr(), clang::Sema::BuildVAArgExpr(), castForMoving(), CastForMoving(), clang::Sema::CheckAddressOfMemberAccess(), clang::Sema::CheckAddressOfOperand(), CheckAlignOfExpr(), checkArgCount(), checkArithmeticBinOpPointerOperands(), checkArithmeticIncompletePointerType(), checkArithmeticNull(), checkArithmeticOnObjCPointer(), CheckArrayDesignatorExpr(), CheckAsmLValue(), clang::Sema::CheckBooleanCondition(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), checkCondition(), checkConditionalBlockPointerCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), checkConditionalVoidType(), CheckConvertedConstantExpression(), CheckCXX98CompatAccessibleCopy(), clang::Sema::CheckCXXThrowOperand(), clang::Sema::checkDeclIsAllowedInOpenMPTarget(), checkEnumComparison(), clang::Sema::CheckEnumConstant(), clang::Sema::CheckExceptionSpecCompatibility(), checkExprMemoryConstraintCompat(), clang::Sema::CheckExtraCXXDefaultArguments(), CheckFoldOperand(), clang::Sema::CheckForConstantInitializer(), CheckForDanglingReferenceOrPointer(), CheckFormatString(), CheckForModifiableLvalue(), checkFunctionOrMethodParameterIndex(), CheckIncrementDecrementOperand(), checkIndirectCopyRestoreSource(), CheckIndirectionOperand(), CheckKeyForObjCARCConversion(), clang::Sema::CheckLogicalOperands(), CheckMapClauseExpressionBase(), CheckMapConflicts(), clang::Sema::CheckMemberOperatorAccess(), clang::Sema::CheckMemberPointerConversion(), CheckMemorySizeofForComparison(), clang::Sema::CheckMessageArgumentTypes(), CheckNonNullArgument(), CheckObjCCollectionLiteralElement(), clang::Sema::CheckObjCForCollectionOperand(), checkObjCPointerIntrospection(), checkOpenCLConditionVector(), checkOpenCLPipeArg(), checkOpenCLPipePacketType(), CheckOpenMPIterationSpace(), CheckOpenMPLoop(), clang::Sema::CheckPackExpansion(), clang::Sema::CheckPointerConversion(), checkPointerIntegerMismatch(), clang::Sema::CheckPointerToMemberOperands(), clang::Sema::CheckRegparmAttr(), CheckReturnStackAddr(), clang::Sema::CheckStaticArrayArgument(), CheckStringInit(), clang::Sema::CheckSubtractionOperands(), clang::Sema::CheckSwitchCondition(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), clang::Sema::CheckTemplateIdType(), clang::Sema::CheckTypenameType(), checkUInt32Argument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), clang::Sema::CheckUnresolvedLookupAccess(), clang::Sema::CheckUnresolvedMemberAccess(), checkUnsafeAssignLiteral(), checkUnsafeAssignObject(), clang::Sema::checkUnsafeExprAssigns(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVectorOperands(), checkVectorShift(), clang::Sema::ConvertArgumentsForCall(), CopyObject(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateGenericSelectionExpr(), CreateIfFixit(), clang::Sema::CreateOverloadedArraySubscriptExpr(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateOverloadedUnaryOp(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::deduceVarTypeFromInitializer(), diagnoseAddressOfInvalidType(), clang::Sema::DiagnoseAlwaysNonNullPointer(), diagnoseAmbiguousConversion(), diagnoseArithmeticOnFunctionPointer(), diagnoseArithmeticOnTwoFunctionPointers(), diagnoseArithmeticOnTwoVoidPointers(), diagnoseArithmeticOnVoidPointer(), clang::Sema::DiagnoseAssignmentAsCondition(), clang::Sema::DiagnoseAssignmentResult(), clang::Sema::DiagnoseAutoDeductionFailure(), diagnoseBadCast(), DiagnoseBadConversion(), DiagnoseBadDivideOrRemainderValues(), DiagnoseBadFunctionCast(), DiagnoseBadShiftValues(), DiagnoseCastOfObjCSEL(), clang::Sema::DiagnoseCommaOperator(), clang::Sema::DiagnoseConditionalForNull(), DiagnoseConditionalPrecedence(), DiagnoseConstAssignment(), diagnoseDistinctPointerComparison(), clang::Sema::DiagnoseEqualityWithExtraParens(), diagnoseFunctionPointerToVoidComparison(), clang::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), diagnoseObjCARCConversion(), diagnoseObjCLiteralComparison(), diagnosePointerIncompatibility(), diagnoseRepeatedUseOfWeak(), diagnoseRetainCycle(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSelfMove(), DiagnoseShiftCompare(), diagnoseUnknownAnyExpr(), DiagnoseUnusedComparison(), clang::Sema::diagnoseZeroToNullptrConversion(), DiagUninitUse(), doRewriteToUTF8StringBoxedExpressionHelper(), emitBug(), clang::CodeGen::CodeGenFunction::EmitCompoundStmt(), clang::CodeGen::CodeGenFunction::EmitCXXForRangeStmt(), EmitDiagnosticForLogicalAndInLogicalOr(), clang::CodeGen::CodeGenFunction::EmitDoStmt(), clang::CodeGen::CodeGenFunction::EmitForStmt(), clang::CodeGen::CodeGenFunction::EmitIfStmt(), clang::CodeGen::CodeGenFunction::emitImplicitAssignmentOperatorBody(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), clang::CodeGen::CGOpenMPRuntime::emitOMPIfClause(), clang::CodeGen::CodeGenFunction::EmitOMPInnerLoop(), clang::CodeGen::CodeGenFunction::EmitWhileStmt(), clang::CodeGen::CodeGenModule::ErrorUnsupported(), EvaluateArrayTypeTrait(), clang::Sema::FinalizeDeclaration(), clang::Sema::FindCompositeObjCPointerType(), findRetainCycleOwner(), findTemplateParameterInType(), finishContextualImplicitConversion(), FinishOverloadedCallExpr(), clang::ento::CallEvent::getArgSourceRange(), clang::ParmVarDecl::getDefaultArgRange(), clang::NonTypeTemplateParmDecl::getDefaultArgumentLoc(), clang::Sema::getExprRange(), getLengthOnSingleLine(), clang::Sema::getPrintable(), getPrivateItem(), clang::ObjCMessageExpr::getReceiverRange(), clang::ento::CallEvent::getSourceRange(), clang::TemplateArgumentLoc::getSourceRange(), clang::CXXStdInitializerListExpr::getSourceRange(), clang::CapturedStmt::getSourceRange(), GetUnreachableLoc(), HandleAddressSpaceTypeAttribute(), handleAlignedAttr(), clang::Sema::HandleExprPropertyRefExpr(), handleFormatArgAttr(), handleFormatAttr(), handleInitPriorityAttr(), handleLayoutVersion(), handleMSP430InterruptAttr(), HandleNeonVectorTypeAttr(), handleNonNullAttr(), handleOpenCLUnrollHint(), handleOwnershipAttr(), handlePassObjectSizeAttr(), handleSentinelAttr(), handleSubGroupSize(), HandleVectorSizeAttr(), handleWorkGroupSize(), clang::Sema::InvalidLogicalVectorOperands(), clang::Sema::InvalidOperands(), isConfigurationValue(), IsNonNegativeIntegerValue(), isNullPointerValueTemplateArgument(), clang::Expr::isUnusedResultAWarning(), LookupMemberExprInRecord(), makeLaunchBoundsArgExpr(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), maybePutParensOnReceiver(), objectifyExpr(), OpenCLArithmeticConversions(), clang::Sema::ParseObjCStringLiteral(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), recordConversion(), clang::tooling::replaceStmtWithStmt(), clang::tooling::replaceStmtWithText(), clang::edit::rewriteObjCRedundantCallWithLiteral(), rewriteToArrayLiteral(), rewriteToArraySubscriptSet(), rewriteToBoolLiteral(), rewriteToCharLiteral(), rewriteToDictionaryLiteral(), rewriteToDictionarySubscriptSet(), rewriteToNumberLiteral(), rewriteToNumericBoxedExpression(), rewriteToSubscriptGetCommon(), SemaBuiltinAnnotation(), SemaBuiltinCallWithStaticChain(), SemaBuiltinCommitRWPipe(), SemaBuiltinCpuSupports(), SemaBuiltinMemChkCall(), SemaBuiltinOverflow(), SemaBuiltinPipePackets(), SemaBuiltinReserveRWPipe(), SemaBuiltinRWPipe(), clang::Sema::SemaBuiltinShuffleVector(), clang::Sema::SemaConvertVectorExpr(), SemaOpenCLBuiltinToAddr(), clang::TreeTransform< Derived >::TransformExprs(), tryDiagnoseOverloadedCast(), TryReinterpretCast(), clang::ConversionFixItGenerator::tryToFixConversion(), clang::Sema::tryToRecoverWithCall(), clang::Sema::VerifyBitField(), clang::Sema::VerifyIntegerConstantExpression(), warnOnLifetimeExtension(), and warnOnSizeofOnArrayDecay().

StmtClass clang::Stmt::getStmtClass ( ) const
inline

Definition at line 361 of file Stmt.h.

References StmtBits.

Referenced by clang::CFG::BuildOptions::alwaysAdd(), BuildParentMap(), clang::Sema::canThrow(), CheckConstexprFunctionStmt(), checkFormatStringExpr(), CheckICE(), clang::Sema::CheckLiteralKind(), children(), ClassifyInternal(), clang::ObjCStringLiteral::classof(), clang::CXXCatchStmt::classof(), clang::ObjCForCollectionStmt::classof(), clang::ObjCBoolLiteralExpr::classof(), clang::CXXOperatorCallExpr::classof(), clang::CXXTryStmt::classof(), clang::ObjCAtCatchStmt::classof(), clang::OMPArraySectionExpr::classof(), clang::ObjCBoxedExpr::classof(), clang::ObjCAtFinallyStmt::classof(), clang::CXXMemberCallExpr::classof(), clang::ObjCArrayLiteral::classof(), clang::CXXForRangeStmt::classof(), clang::CUDAKernelCallExpr::classof(), clang::OMPExecutableDirective::classof(), clang::CXXNamedCastExpr::classof(), clang::MSDependentExistsStmt::classof(), clang::CXXStaticCastExpr::classof(), clang::ObjCAtSynchronizedStmt::classof(), clang::OMPParallelDirective::classof(), clang::ObjCDictionaryLiteral::classof(), clang::CXXDynamicCastExpr::classof(), clang::ObjCAtThrowStmt::classof(), clang::ObjCAutoreleasePoolStmt::classof(), clang::CXXReinterpretCastExpr::classof(), clang::ObjCEncodeExpr::classof(), clang::CXXConstCastExpr::classof(), clang::CoroutineBodyStmt::classof(), clang::ObjCSelectorExpr::classof(), clang::ObjCProtocolExpr::classof(), clang::UserDefinedLiteral::classof(), clang::DeclStmt::classof(), clang::CXXBoolLiteralExpr::classof(), clang::ObjCIvarRefExpr::classof(), clang::CXXNullPtrLiteralExpr::classof(), clang::NullStmt::classof(), clang::CXXStdInitializerListExpr::classof(), clang::CompoundStmt::classof(), clang::CXXTypeidExpr::classof(), clang::ObjCPropertyRefExpr::classof(), clang::MSPropertyRefExpr::classof(), clang::CaseStmt::classof(), clang::MSPropertySubscriptExpr::classof(), clang::DefaultStmt::classof(), clang::ObjCSubscriptRefExpr::classof(), clang::LabelStmt::classof(), clang::Expr::classof(), clang::CXXUuidofExpr::classof(), clang::AttributedStmt::classof(), clang::CXXThisExpr::classof(), clang::OpaqueValueExpr::classof(), clang::OMPLoopDirective::classof(), clang::CXXThrowExpr::classof(), clang::IfStmt::classof(), clang::OMPSimdDirective::classof(), clang::CXXDefaultArgExpr::classof(), clang::SwitchStmt::classof(), clang::CXXDefaultInitExpr::classof(), clang::OMPForDirective::classof(), clang::WhileStmt::classof(), clang::DoStmt::classof(), clang::OMPForSimdDirective::classof(), clang::DeclRefExpr::classof(), clang::CXXBindTemporaryExpr::classof(), clang::PredefinedExpr::classof(), clang::OMPSectionsDirective::classof(), clang::ForStmt::classof(), clang::GotoStmt::classof(), clang::OMPSectionDirective::classof(), clang::IndirectGotoStmt::classof(), clang::IntegerLiteral::classof(), clang::CXXConstructExpr::classof(), clang::ContinueStmt::classof(), clang::ObjCMessageExpr::classof(), clang::OMPSingleDirective::classof(), clang::BreakStmt::classof(), clang::CharacterLiteral::classof(), clang::CXXInheritedCtorInitExpr::classof(), clang::OMPMasterDirective::classof(), clang::ReturnStmt::classof(), clang::ObjCIsaExpr::classof(), clang::FloatingLiteral::classof(), clang::OMPCriticalDirective::classof(), clang::ImaginaryLiteral::classof(), clang::ObjCIndirectCopyRestoreExpr::classof(), clang::AsmStmt::classof(), clang::OMPParallelForDirective::classof(), clang::ObjCBridgedCastExpr::classof(), clang::ObjCAvailabilityCheckExpr::classof(), clang::OMPParallelForSimdDirective::classof(), clang::StringLiteral::classof(), clang::OMPParallelSectionsDirective::classof(), clang::ParenExpr::classof(), clang::LambdaExpr::classof(), clang::OMPTaskDirective::classof(), clang::GCCAsmStmt::classof(), clang::CXXScalarValueInitExpr::classof(), clang::OMPTaskyieldDirective::classof(), clang::UnaryOperator::classof(), clang::OMPBarrierDirective::classof(), clang::MSAsmStmt::classof(), clang::OMPTaskwaitDirective::classof(), clang::SEHExceptStmt::classof(), clang::SEHFinallyStmt::classof(), clang::OMPTaskgroupDirective::classof(), clang::CXXNewExpr::classof(), clang::SEHTryStmt::classof(), clang::OMPFlushDirective::classof(), clang::OffsetOfExpr::classof(), clang::SEHLeaveStmt::classof(), clang::CXXDeleteExpr::classof(), clang::OMPOrderedDirective::classof(), clang::UnaryExprOrTypeTraitExpr::classof(), clang::ArraySubscriptExpr::classof(), clang::OMPAtomicDirective::classof(), clang::CapturedStmt::classof(), clang::OMPTargetDirective::classof(), clang::OMPTargetDataDirective::classof(), clang::TypeTraitExpr::classof(), clang::OMPTargetEnterDataDirective::classof(), clang::ArrayTypeTraitExpr::classof(), clang::OMPTargetExitDataDirective::classof(), clang::ExpressionTraitExpr::classof(), clang::OMPTargetParallelDirective::classof(), clang::OMPTargetParallelForDirective::classof(), clang::MemberExpr::classof(), clang::OMPTeamsDirective::classof(), clang::OverloadExpr::classof(), clang::OMPCancellationPointDirective::classof(), clang::CompoundLiteralExpr::classof(), clang::OMPCancelDirective::classof(), clang::UnresolvedLookupExpr::classof(), clang::CastExpr::classof(), clang::OMPTaskLoopDirective::classof(), clang::ImplicitCastExpr::classof(), clang::OMPTaskLoopSimdDirective::classof(), clang::ExplicitCastExpr::classof(), clang::DependentScopeDeclRefExpr::classof(), clang::CStyleCastExpr::classof(), clang::OMPDistributeDirective::classof(), clang::ExprWithCleanups::classof(), clang::OMPTargetUpdateDirective::classof(), clang::OMPDistributeParallelForDirective::classof(), clang::CXXUnresolvedConstructExpr::classof(), clang::BinaryOperator::classof(), clang::OMPDistributeParallelForSimdDirective::classof(), clang::CompoundAssignOperator::classof(), clang::OMPDistributeSimdDirective::classof(), clang::AbstractConditionalOperator::classof(), clang::OMPTargetParallelForSimdDirective::classof(), clang::ConditionalOperator::classof(), clang::CXXDependentScopeMemberExpr::classof(), clang::OMPTargetSimdDirective::classof(), clang::BinaryConditionalOperator::classof(), clang::OMPTeamsDistributeDirective::classof(), clang::AddrLabelExpr::classof(), clang::UnresolvedMemberExpr::classof(), clang::OMPTeamsDistributeSimdDirective::classof(), clang::StmtExpr::classof(), clang::ShuffleVectorExpr::classof(), clang::CXXNoexceptExpr::classof(), clang::OMPTeamsDistributeParallelForSimdDirective::classof(), clang::PackExpansionExpr::classof(), clang::ConvertVectorExpr::classof(), clang::OMPTeamsDistributeParallelForDirective::classof(), clang::OMPTargetTeamsDirective::classof(), clang::ChooseExpr::classof(), clang::SizeOfPackExpr::classof(), clang::GNUNullExpr::classof(), clang::OMPTargetTeamsDistributeDirective::classof(), clang::SubstNonTypeTemplateParmExpr::classof(), clang::VAArgExpr::classof(), clang::OMPTargetTeamsDistributeParallelForDirective::classof(), clang::SubstNonTypeTemplateParmPackExpr::classof(), clang::OMPTargetTeamsDistributeParallelForSimdDirective::classof(), clang::FunctionParmPackExpr::classof(), clang::OMPTargetTeamsDistributeSimdDirective::classof(), clang::MaterializeTemporaryExpr::classof(), clang::CXXFoldExpr::classof(), clang::CoroutineSuspendExpr::classof(), clang::CoawaitExpr::classof(), clang::DependentCoawaitExpr::classof(), clang::CoyieldExpr::classof(), clang::NoInitExpr::classof(), clang::ArrayInitLoopExpr::classof(), clang::ArrayInitIndexExpr::classof(), clang::ImplicitValueInitExpr::classof(), clang::ParenListExpr::classof(), clang::GenericSelectionExpr::classof(), clang::ExtVectorElementExpr::classof(), clang::BlockExpr::classof(), clang::AsTypeExpr::classof(), clang::PseudoObjectExpr::classof(), clang::AtomicExpr::classof(), clang::TypoExpr::classof(), DiagUninitUse(), clang::CodeGen::CodeGenFunction::EmitAttributedStmt(), clang::CodeGen::CodeGenFunction::EmitLValue(), clang::CodeGen::CodeGenFunction::EmitSimpleStmt(), clang::CodeGen::CodeGenFunction::EmitStmt(), EvalAddr(), EvaluateStmt(), EvalVal(), GenerateMinimalPathDiagnostic(), clang::CallEventManager::getCaller(), clang::CXXNamedCastExpr::getCastName(), clang::ento::SValBuilder::getConstantVal(), getEnclosingParent(), clang::Expr::getExprLoc(), clang::ast_type_traits::ASTNodeKind::getFromNode(), getLocEnd(), getLocStart(), getLoopCondition(), clang::ObjCMethodCall::getMessageKind(), getPrimaryDecl(), clang::threadSafety::getSourceLiteralString(), getSourceRange(), clang::ento::Environment::getSVal(), clang::CFGBlock::getTerminatorCondition(), GetUnreachableLoc(), handleLoopHintAttr(), clang::Expr::HasSideEffects(), ignoreTransparentExprs(), isConditionForTerminator(), isConfigurationValue(), clang::Expr::isConstantInitializer(), clang::ParentMap::isConsumedExpr(), IsGlobalLValue(), isIdenticalStmt(), clang::CXXCtorInitializer::isInClassMemberInitializer(), isInLoop(), isInLoopBody(), isLoop(), clang::Expr::isOBJCGCCandidate(), isObjCObjectLiteral(), clang::Expr::isUnusedResultAWarning(), requiresParensToAddCast(), reversePropagateIntererstingSymbols(), clang::CodeGen::scanForTargetRegionsFunctions(), SemaBuiltinCallWithStaticChain(), clang::TreeTransform< Derived >::TransformCXXNamedCastExpr(), clang::TreeTransform< Derived >::TransformExpr(), clang::TreeTransform< Derived >::TransformStmt(), clang::threadSafety::SExprBuilder::translate(), clang::StmtVisitorBase< make_ptr, ASTNodeImporter, Stmt * >::Visit(), clang::ento::ExprEngine::Visit(), clang::ASTNodeImporter::VisitExplicitCastExpr(), clang::ento::ConditionBRVisitor::VisitTerminator(), and clang::ento::ConditionBRVisitor::VisitTrueTest().

const char * Stmt::getStmtClassName ( ) const
Stmt * Stmt::IgnoreContainers ( bool  IgnoreCaptured = false)

Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true.

Definition at line 116 of file Stmt.cpp.

References S.

Referenced by clang::Sema::ActOnOpenMPTargetDirective(), CheckOpenMPLoop(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicDirective(), and clang::OMPLoopDirective::getBody().

Stmt * Stmt::IgnoreImplicit ( )

Skip past any implicit AST nodes which might surround this statement, such as ExprWithCleanups or ImplicitCastExpr nodes.

Definition at line 96 of file Stmt.cpp.

Referenced by IgnoreImplicit(), clang::Expr::IgnoreImplicit(), and isConfigurationValue().

const Stmt* clang::Stmt::IgnoreImplicit ( ) const
inline

Definition at line 402 of file Stmt.h.

References IgnoreImplicit().

void clang::Stmt::operator delete ( void *  data)
inlineprotectednoexcept

Definition at line 78 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
const ASTContext ,
unsigned   
)
inlinenoexcept

Definition at line 299 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
const ASTContext ,
unsigned   
)
inlinenoexcept

Definition at line 300 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
size_t   
)
inlinenoexcept

Definition at line 301 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
void *   
)
inlinenoexcept

Definition at line 302 of file Stmt.h.

void* clang::Stmt::operator new ( size_t  bytes)
inlineprotectednoexcept

Definition at line 75 of file Stmt.h.

void * Stmt::operator new ( size_t  bytes,
const ASTContext C,
unsigned  alignment = 8 
)

Definition at line 53 of file Stmt.cpp.

References bytes().

void* clang::Stmt::operator new ( size_t  bytes,
const ASTContext C,
unsigned  alignment = 8 
)
inline

Definition at line 292 of file Stmt.h.

References bytes(), and AttributeLangSupport::C.

void* clang::Stmt::operator new ( size_t  bytes,
void *  mem 
)
inlinenoexcept

Definition at line 297 of file Stmt.h.

void Stmt::printPretty ( raw_ostream &  OS,
PrinterHelper Helper,
const PrintingPolicy Policy,
unsigned  Indentation = 0 
) const
void Stmt::PrintStats ( )
static
void Stmt::ProcessODRHash ( llvm::FoldingSetNodeID &  ID,
ODRHash Hash 
) const

Calculate a unique representation for a statement that is stable across compiler invocations.

Parameters
IDprofile information will be stored in ID.
Hashan ODRHash object which will be called where pointers would have been used in the Profile function.

Definition at line 1926 of file StmtProfile.cpp.

Referenced by clang::ODRHash::AddStmt().

void Stmt::Profile ( llvm::FoldingSetNodeID &  ID,
const ASTContext Context,
bool  Canonical 
) const

Produce a unique representation of the given statement.

Parameters
IDonce the profiling operation is complete, will contain the unique representation of the given statement.
Contextthe AST context in which the statement resides
Canonicalwhether the profile should be based on the canonical representation of this statement (e.g., where non-type template parameters are identified by index/level rather than their declaration pointers) or the exact representation of the statement as written in the source.

Definition at line 1920 of file StmtProfile.cpp.

Referenced by clang::Sema::CheckClassTemplate(), checkDeducedTemplateArguments(), isSameTemplateArg(), clang::TemplateArgument::Profile(), clang::DependentSizedArrayType::Profile(), clang::DependentSizedExtVectorType::Profile(), clang::DependentTypeOfExprType::Profile(), and clang::DependentDecltypeType::Profile().

const Stmt * Stmt::stripLabelLikeStatements ( ) const

Strip off all label-like statements.

This will strip off label statements, case statements, attributed statements and default statements recursively.

Definition at line 138 of file Stmt.cpp.

References S.

Referenced by stripLabelLikeStatements().

Stmt* clang::Stmt::stripLabelLikeStatements ( )
inline

Definition at line 411 of file Stmt.h.

References stripLabelLikeStatements().

void Stmt::viewAST ( ) const

viewAST - Visualize an AST rooted at this Stmt* using GraphViz.

Only works on systems with GraphViz (Mac OS X) or dot+gv installed.

Definition at line 21 of file StmtViz.cpp.

Friends And Related Function Documentation

friend class ASTStmtReader
friend

Definition at line 283 of file Stmt.h.

friend class ASTStmtWriter
friend

Definition at line 284 of file Stmt.h.

Member Data Documentation

union { ... }
CallExprBitfields clang::Stmt::CallExprBits

Definition at line 274 of file Stmt.h.

Referenced by clang::CallExpr::CallExpr(), and clang::CallExpr::getNumPreArgs().

CastExprBitfields clang::Stmt::CastExprBits
CharacterLiteralBitfields clang::Stmt::CharacterLiteralBits
CoawaitExprBitfields clang::Stmt::CoawaitBits
CompoundStmtBitfields clang::Stmt::CompoundStmtBits
DeclRefExprBitfields clang::Stmt::DeclRefExprBits
ExprBitfields clang::Stmt::ExprBits
ExprWithCleanupsBitfields clang::Stmt::ExprWithCleanupsBits
FloatingLiteralBitfields clang::Stmt::FloatingLiteralBits
IfStmtBitfields clang::Stmt::IfStmtBits

Definition at line 267 of file Stmt.h.

Referenced by clang::IfStmt::isConstexpr(), and clang::IfStmt::setConstexpr().

InitListExprBitfields clang::Stmt::InitListExprBits
ObjCIndirectCopyRestoreExprBitfields clang::Stmt::ObjCIndirectCopyRestoreExprBits

Definition at line 277 of file Stmt.h.

Referenced by clang::ObjCIndirectCopyRestoreExpr::shouldCopy().

PseudoObjectExprBitfields clang::Stmt::PseudoObjectExprBits
StmtBitfields clang::Stmt::StmtBits

Definition at line 265 of file Stmt.h.

Referenced by getStmtClass(), getStmtClassName(), and Stmt().

TypeTraitExprBitfields clang::Stmt::TypeTraitExprBits
UnaryExprOrTypeTraitExprBitfields clang::Stmt::UnaryExprOrTypeTraitExprBits

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