clang 22.0.0git
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]

Classes

struct   CastIterator
  Iterator for iterating over Stmt * arrays that contain only T *. More...
class   DoStmtBitfields
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
class   ForStmtBitfields
class   IfStmtBitfields
class   StmtBitfields

Public Types

enum   StmtClass { NoStmtClass = 0 }
enum   Likelihood { LH_Unlikely = -1 , LH_None , LH_Likely }
  The likelihood of a branch being taken. More...
  Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpressions of an AST node.
using  child_range = llvm::iterator_range<child_iterator>
using  const_child_range = llvm::iterator_range<const_child_iterator>

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 ()=delete
  Stmt (const Stmt &)=delete
  Stmt (Stmt &&)=delete
Stmtoperator= (const Stmt &)=delete
Stmtoperator= (Stmt &&)=delete
  Stmt (StmtClass SC)
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.
SourceLocation  getBeginLoc () const LLVM_READONLY
SourceLocation  getEndLoc () const LLVM_READONLY
void  dump () const
  Dumps the specified AST fragment and all subtrees to llvm::errs().
void  dump (raw_ostream &OS, const ASTContext &Context) const
int64_t  getID (const ASTContext &Context) const
void  dumpColor () const
  dumpColor - same as dump(), but forces color highlighting.
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.
void  printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const
void  printPrettyControlled (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const
void  printJson (raw_ostream &Out, PrinterHelper *Helper, const PrintingPolicy &Policy, bool AddQuotes) const
  Pretty-prints in JSON format.
void  viewAST () const
  viewAST - Visualize an AST rooted at this Stmt* using GraphViz.
StmtIgnoreContainers (bool IgnoreCaptured=false)
  Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true.
const StmtIgnoreContainers (bool IgnoreCaptured=false) const
const StmtstripLabelLikeStatements () const
  Strip off all label-like statements.
void  Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical, bool ProfileLambdaExpr=false) const
  Produce a unique representation of the given statement.
void  ProcessODRHash (llvm::FoldingSetNodeID &ID, ODRHash &Hash) const
  Calculate a unique representation for a statement that is stable across compiler invocations.

Static Public Member Functions

static void  addStmtClass (const StmtClass s)
static void  EnableStatistics ()
static void  PrintStats ()
static Likelihood  getLikelihood (ArrayRef< const Attr * > Attrs)
static Likelihood  getLikelihood (const Stmt *S)
static const AttrgetLikelihoodAttr (const Stmt *S)
static Likelihood  getLikelihood (const Stmt *Then, const Stmt *Else)
static std::tuple< bool, const Attr *, const Attr * >  determineLikelihoodConflict (const Stmt *Then, const Stmt *Else)

Protected Types

enum   { NumExprBits = NumStmtBits + 5 + llvm::BitWidth<ExprDependence> }
enum   { NumCallExprBits = 25 }
enum   { NumOverloadExprBits = NumExprBits + 1 }
template<typename T>
using  ConstCastIterator = CastIterator<T, const T *const, const Stmt *const>
  Const iterator for iterating over Stmt * arrays that contain only T *.

Protected Member Functions

void *  operator new (size_t bytes) noexcept
void  operator delete (void *data) noexcept
  Construct an empty statement.

Protected Attributes

union { 
   StmtBitfields   StmtBits 
   ExprBitfields   ExprBits 
}; 

Friends

class  ASTStmtReader
class  ASTStmtWriter

Detailed Description

Stmt - This represents one statement.

Definition at line 85 of file Stmt.h.

Member Typedef Documentation

◆  child_iterator

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

This permits easy iteration over all nodes in the AST.

Definition at line 1558 of file Stmt.h.

◆  child_range

using clang::Stmt::child_range = llvm::iterator_range<child_iterator>

Definition at line 1561 of file Stmt.h.

◆  const_child_iterator

Definition at line 1559 of file Stmt.h.

◆  const_child_range

Definition at line 1562 of file Stmt.h.

◆  ConstCastIterator

template<typename T>
using clang::Stmt::ConstCastIterator = CastIterator<T, const T *const, const Stmt *const>
protected

Const iterator for iterating over Stmt * arrays that contain only T *.

Definition at line 1443 of file Stmt.h.

◆  ConstExprIterator

Definition at line 1446 of file Stmt.h.

◆  ExprIterator

Definition at line 1445 of file Stmt.h.

Member Enumeration Documentation

◆  anonymous enum

anonymous enum
protected
Enumerator
NumCallExprBits 

Definition at line 571 of file Stmt.h.

◆  anonymous enum

anonymous enum
protected
Enumerator
NumExprBits 

Definition at line 356 of file Stmt.h.

◆  anonymous enum

anonymous enum
protected
Enumerator
NumOverloadExprBits 

Definition at line 1099 of file Stmt.h.

◆  Likelihood

The likelihood of a branch being taken.

Enumerator
LH_Unlikely 

Branch has the [[unlikely]] attribute.

LH_None 

No attribute set or branches of the IfStmt have the same attribute.

LH_Likely 

Branch has the [[likely]] attribute.

Definition at line 1415 of file Stmt.h.

◆  StmtClass

Enumerator
NoStmtClass 

Definition at line 87 of file Stmt.h.

Constructor & Destructor Documentation

◆  Stmt() [1/5]

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

Construct an empty statement.

Definition at line 1454 of file Stmt.h.

References Stmt().

Referenced by clang::AsmStmt::AsmStmt(), clang::AsmStmt::AsmStmt(), clang::CoroutineBodyStmt::ASTReader, clang::CapturedStmt::ASTStmtReader, clang::CompoundStmt::ASTStmtReader, clang::CXXForRangeStmt::ASTStmtReader, clang::SEHExceptStmt::ASTStmtReader, clang::SEHFinallyStmt::ASTStmtReader, clang::SEHTryStmt::ASTStmtReader, clang::SYCLKernelCallStmt::ASTStmtWriter, clang::CompoundStmt::body_back(), clang::CompoundStmt::body_back(), clang::CompoundStmt::body_front(), clang::CompoundStmt::body_front(), children(), clang::AsmStmt::classof(), clang::CapturedStmt::classof(), clang::CompoundStmt::classof(), clang::CoreturnStmt::classof(), clang::CoroutineBodyStmt::classof(), clang::CXXCatchStmt::classof(), clang::CXXForRangeStmt::classof(), clang::CXXTryStmt::classof(), clang::DeclStmt::classof(), clang::DoStmt::classof(), clang::ForStmt::classof(), clang::GotoStmt::classof(), clang::IfStmt::classof(), clang::IndirectGotoStmt::classof(), clang::LoopControlStmt::classof(), clang::MSDependentExistsStmt::classof(), clang::NullStmt::classof(), clang::ObjCAtCatchStmt::classof(), clang::ObjCAtFinallyStmt::classof(), clang::ObjCAtSynchronizedStmt::classof(), clang::ObjCAtThrowStmt::classof(), clang::ObjCAtTryStmt::classof(), clang::ObjCAutoreleasePoolStmt::classof(), clang::ObjCForCollectionStmt::classof(), clang::OpenACCConstructStmt::classof(), clang::ReturnStmt::classof(), clang::SEHExceptStmt::classof(), clang::SEHFinallyStmt::classof(), clang::SEHLeaveStmt::classof(), clang::SEHTryStmt::classof(), clang::SwitchCase::classof(), clang::SwitchStmt::classof(), clang::SYCLKernelCallStmt::classof(), clang::WhileStmt::classof(), clang::CompoundStmt::CompoundStmt(), clang::CoreturnStmt::CoreturnStmt(), clang::CapturedStmt::Create(), clang::CoroutineBodyStmt::Create(), clang::IfStmt::Create(), clang::ObjCAtTryStmt::Create(), clang::SEHExceptStmt::Create(), clang::SEHFinallyStmt::Create(), clang::SEHTryStmt::Create(), clang::SwitchStmt::Create(), clang::WhileStmt::Create(), clang::CapturedStmt::CreateDeserialized(), clang::CXXCatchStmt::CXXCatchStmt(), clang::CXXCatchStmt::CXXCatchStmt(), clang::CXXForRangeStmt::CXXForRangeStmt(), clang::CXXForRangeStmt::CXXForRangeStmt(), clang::DeclStmt::DeclStmt(), clang::DeclStmt::DeclStmt(), determineLikelihoodConflict(), clang::DoStmt::DoStmt(), clang::DoStmt::DoStmt(), clang::ForStmt::ForStmt(), clang::ForStmt::ForStmt(), clang::CXXForRangeStmt::getBody(), clang::CXXForRangeStmt::getBody(), clang::DoStmt::getBody(), clang::DoStmt::getBody(), clang::ForStmt::getBody(), clang::ForStmt::getBody(), clang::ObjCForCollectionStmt::getBody(), clang::ObjCForCollectionStmt::getBody(), clang::SwitchStmt::getBody(), clang::SwitchStmt::getBody(), clang::WhileStmt::getBody(), clang::WhileStmt::getBody(), clang::CapturedStmt::getCapturedStmt(), clang::CapturedStmt::getCapturedStmt(), clang::ObjCAtCatchStmt::getCatchBody(), clang::ObjCAtCatchStmt::getCatchBody(), clang::ObjCForCollectionStmt::getElement(), clang::ObjCForCollectionStmt::getElement(), clang::IfStmt::getElse(), clang::IfStmt::getElse(), clang::SwitchStmt::getEndLoc(), clang::CoroutineBodyStmt::getExceptionHandler(), clang::CoroutineBodyStmt::getFallthroughHandler(), clang::ObjCAtFinallyStmt::getFinallyBody(), clang::ObjCAtFinallyStmt::getFinallyBody(), clang::CoroutineBodyStmt::getFinalSuspendStmt(), clang::SEHTryStmt::getHandler(), clang::CXXCatchStmt::getHandlerBlock(), getID(), clang::CXXForRangeStmt::getInit(), clang::CXXForRangeStmt::getInit(), clang::ForStmt::getInit(), clang::ForStmt::getInit(), clang::IfStmt::getInit(), clang::IfStmt::getInit(), clang::SwitchStmt::getInit(), clang::SwitchStmt::getInit(), clang::CoroutineBodyStmt::getInitSuspendStmt(), getLikelihood(), getLikelihood(), getLikelihoodAttr(), clang::LoopControlStmt::getNamedLoopOrSwitch(), clang::CoroutineBodyStmt::getPromiseDeclStmt(), clang::CoroutineBodyStmt::getResultDecl(), clang::CoroutineBodyStmt::getReturnStmt(), clang::CoroutineBodyStmt::getReturnStmtOnAllocFailure(), clang::ObjCAutoreleasePoolStmt::getSubStmt(), clang::ObjCAutoreleasePoolStmt::getSubStmt(), clang::SwitchCase::getSubStmt(), clang::SwitchCase::getSubStmt(), clang::IfStmt::getThen(), clang::IfStmt::getThen(), clang::ObjCAtTryStmt::getTryBody(), clang::ObjCAtTryStmt::getTryBody(), clang::GotoStmt::GotoStmt(), clang::GotoStmt::GotoStmt(), IgnoreContainers(), IgnoreContainers(), clang::IndirectGotoStmt::IndirectGotoStmt(), clang::IndirectGotoStmt::IndirectGotoStmt(), clang::LoopControlStmt::LoopControlStmt(), clang::LoopControlStmt::LoopControlStmt(), clang::MSDependentExistsStmt::MSDependentExistsStmt(), clang::NullStmt::NullStmt(), clang::NullStmt::NullStmt(), clang::ObjCAtCatchStmt::ObjCAtCatchStmt(), clang::ObjCAtCatchStmt::ObjCAtCatchStmt(), clang::ObjCAtFinallyStmt::ObjCAtFinallyStmt(), clang::ObjCAtFinallyStmt::ObjCAtFinallyStmt(), clang::ObjCAtSynchronizedStmt::ObjCAtSynchronizedStmt(), clang::ObjCAtSynchronizedStmt::ObjCAtSynchronizedStmt(), clang::ObjCAtThrowStmt::ObjCAtThrowStmt(), clang::ObjCAtThrowStmt::ObjCAtThrowStmt(), clang::ObjCAutoreleasePoolStmt::ObjCAutoreleasePoolStmt(), clang::ObjCAutoreleasePoolStmt::ObjCAutoreleasePoolStmt(), clang::ObjCForCollectionStmt::ObjCForCollectionStmt(), clang::ObjCForCollectionStmt::ObjCForCollectionStmt(), clang::OpenACCConstructStmt::OpenACCConstructStmt(), operator=(), operator=(), printPretty(), printPrettyControlled(), clang::SEHLeaveStmt::SEHLeaveStmt(), clang::SEHLeaveStmt::SEHLeaveStmt(), clang::CXXForRangeStmt::setBeginStmt(), clang::CXXForRangeStmt::setBody(), clang::DoStmt::setBody(), clang::ForStmt::setBody(), clang::ObjCForCollectionStmt::setBody(), clang::SwitchStmt::setBody(), clang::SwitchStmt::setBody(), clang::WhileStmt::setBody(), clang::ObjCAtCatchStmt::setCatchBody(), clang::ObjCForCollectionStmt::setCollection(), clang::CXXForRangeStmt::setCond(), clang::DoStmt::setCond(), clang::ForStmt::setCond(), clang::IfStmt::setCond(), clang::SwitchStmt::setCond(), clang::WhileStmt::setCond(), clang::ObjCForCollectionStmt::setElement(), clang::IfStmt::setElse(), clang::CXXForRangeStmt::setEndStmt(), clang::ObjCAtFinallyStmt::setFinallyBody(), clang::ObjCAtTryStmt::setFinallyStmt(), clang::CXXForRangeStmt::setInc(), clang::ForStmt::setInc(), clang::CXXForRangeStmt::setInit(), clang::ForStmt::setInit(), clang::IfStmt::setInit(), clang::SwitchStmt::setInit(), clang::CXXForRangeStmt::setLoopVarStmt(), clang::CXXForRangeStmt::setRangeInit(), clang::CXXForRangeStmt::setRangeStmt(), clang::ReturnStmt::setRetValue(), clang::ObjCAutoreleasePoolStmt::setSubStmt(), clang::ObjCAtSynchronizedStmt::setSynchBody(), clang::ObjCAtSynchronizedStmt::setSynchExpr(), clang::IndirectGotoStmt::setTarget(), clang::IfStmt::setThen(), clang::ObjCAtThrowStmt::setThrowExpr(), clang::ObjCAtTryStmt::setTryBody(), Stmt(), Stmt(), Stmt(), stripLabelLikeStatements(), stripLabelLikeStatements(), clang::SwitchCase::SwitchCase(), clang::SwitchCase::SwitchCase(), clang::SYCLKernelCallStmt::SYCLKernelCallStmt(), and clang::SYCLKernelCallStmt::SYCLKernelCallStmt().

◆  Stmt() [2/5]

clang::Stmt::Stmt ( )
delete

◆  Stmt() [3/5]

clang::Stmt::Stmt ( const Stmt & )
delete

References Stmt().

◆  Stmt() [4/5]

clang::Stmt::Stmt ( Stmt && )
delete

References Stmt().

◆  Stmt() [5/5]

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

Definition at line 1463 of file Stmt.h.

References addStmtClass(), and StmtBits.

Member Function Documentation

◆  addStmtClass()

void Stmt::addStmtClass ( const StmtClass s )
static

Definition at line 134 of file Stmt.cpp.

References StmtClassNameTable::Counter, getStmtInfoTableEntry(), and s.

Referenced by Stmt().

◆  child_begin() [1/2]

◆  child_begin() [2/2]

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

Definition at line 1573 of file Stmt.h.

References children().

◆  child_end() [1/2]

◆  child_end() [2/2]

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

Definition at line 1574 of file Stmt.h.

References children().

◆  children() [1/2]

Stmt::child_range Stmt::children ( )

Definition at line 299 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::SemaOpenMP::ActOnOpenMPRegionEnd(), AnalyzeImplicitConversions(), BuildParentMap(), clang::canSubStmtsThrow(), CheckConstexprFunctionBody(), CheckConstexprFunctionStmt(), CheckNakedParmReference(), checkNoThrow(), child_begin(), child_begin(), child_end(), child_end(), children(), clang::CodeGen::CodeGenFunction::containsBreak(), clang::ento::containsBuiltinOffsetOf(), clang::ento::containsEnum(), clang::CodeGen::CodeGenFunction::ContainsLabel(), clang::ento::containsMacro(), clang::ento::containsStaticLocal(), clang::ento::containsStmt(), FindBlockDeclRefExpr(), clang::LexicallyOrderedRecursiveASTVisitor< Derived >::getStmtChildren(), clang::RecursiveASTVisitor< RecursiveSymbolVisitor< T > >::getStmtChildren(), hasOrderedDirective(), clang::Expr::HasSideEffects(), isCapturedBy(), isCapturedBy(), isSimdSupportedByOpenMPIRBuilder(), IsStructurallyEquivalent(), clang::CodeGen::CodeGenFunction::mightAddDeclToScope(), clang::ento::retaincountchecker::RetainCountChecker::processObjCLiterals(), saveHash(), Scan(), clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(), SearchForReturnInStmt(), seenBefore(), StmtCanThrow(), GlobalDeclRefChecker::VisitExpr(), clang::ento::retaincountchecker::RefCountReportVisitor::VisitNode(), clang::EnsureFunctionVisitor::VisitStmt(), and clang::EvaluatedExprVisitorBase< Ptr, ImplClass >::VisitStmt().

◆  children() [2/2]

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

Definition at line 1566 of file Stmt.h.

References children(), and Stmt().

◆  determineLikelihoodConflict()

std::tuple< bool, const Attr *, const Attr * > Stmt::determineLikelihoodConflict ( const Stmt * Then,
const Stmt * Else )
static
Returns
whether the likelihood of the branches of an if statement are conflicting. When the first element is true there's a conflict and the Attr's are the conflicting attributes of the Then and Else Stmt.

Definition at line 193 of file Stmt.cpp.

References getLikelihood(), LH_None, and Stmt().

Referenced by clang::Sema::ActOnIfStmt().

◆  dump() [1/2]

LLVM_DUMP_METHOD void Stmt::dump ( ) const

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

Definition at line 290 of file ASTDumper.cpp.

References clang::ASTNodeTraverser< Derived, NodeDelegateType >::Visit().

Referenced by clang::Sema::ActOnPragmaDump(), and clang::FunctionEffectWithCondition::operator<<.

◆  dump() [2/2]

LLVM_DUMP_METHOD void Stmt::dump ( raw_ostream & OS,
const ASTContext & Context ) const

◆  dumpColor()

LLVM_DUMP_METHOD void Stmt::dumpColor ( ) const

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

Definition at line 301 of file ASTDumper.cpp.

References clang::ASTNodeTraverser< Derived, NodeDelegateType >::Visit().

◆  dumpPretty()

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 2940 of file StmtPrinter.cpp.

References printPretty().

◆  EnableStatistics()

void Stmt::EnableStatistics ( )
static

Definition at line 139 of file Stmt.cpp.

Referenced by clang::ParseAST().

◆  getBeginLoc()

SourceLocation Stmt::getBeginLoc ( ) const

Definition at line 350 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::SemaOpenACC::ActOnArraySectionExpr(), clang::Sema::ActOnArraySubscriptExpr(), clang::SemaOpenACC::ActOnAssociatedStmt(), clang::Sema::ActOnCondition(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXForRangeStmt(), clang::Sema::ActOnDoStmt(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnGCCAsmStmtString(), clang::Sema::ActOnIfStmt(), clang::Sema::ActOnLabelStmt(), clang::Sema::ActOnMSAsmStmt(), clang::Sema::ActOnNoexceptSpec(), clang::SemaOpenMP::ActOnOMPIteratorExpr(), clang::SemaOpenMP::ActOnOpenMPAtomicDirective(), clang::SemaOpenMP::ActOnOpenMPDispatchDirective(), clang::SemaOpenMP::ActOnOpenMPDistScheduleClause(), clang::SemaOpenMP::ActOnOpenMPErrorDirective(), clang::SemaOpenMP::ActOnOpenMPFuseDirective(), clang::SemaOpenMP::ActOnOpenMPInterchangeDirective(), clang::SemaOpenMP::ActOnOpenMPLinearClause(), clang::SemaOpenMP::ActOnOpenMPMessageClause(), clang::SemaOpenMP::ActOnOpenMPPermutationClause(), clang::SemaOpenMP::ActOnOpenMPReverseDirective(), clang::SemaOpenMP::ActOnOpenMPScheduleClause(), clang::SemaOpenMP::ActOnOpenMPStripeDirective(), clang::SemaOpenMP::ActOnOpenMPTargetDirective(), clang::SemaOpenMP::ActOnOpenMPTileDirective(), clang::SemaOpenMP::ActOnOpenMPUnrollDirective(), clang::SemaHLSL::ActOnOutParamExpr(), clang::Sema::ActOnPackIndexingExpr(), clang::SemaOpenACC::ActOnRoutineName(), clang::Sema::ActOnStmtExprResult(), clang::Sema::ActOnWhileStmt(), clang::Sema::AddAllocAlignAttr(), clang::Sema::AddConversionCandidate(), clang::SemaObjC::adornBoolConversionDiagWithTernaryFixit(), clang::GCCAsmStmt::AnalyzeAsmString(), AnalyzeAssignment(), AnalyzeBitFieldAssignment(), AnalyzeImplicitConversions(), clang::Sema::BoundsSafetyCheckUseOfCountAttrPtr(), clang::Sema::BuildArrayType(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), buildCaptureDecl(), BuildConvertedConstantExpression(), clang::Sema::BuildCXXAssumeExpr(), clang::Sema::BuildCXXDefaultArgExpr(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXThrow(), clang::Sema::BuildCXXTypeConstructExpr(), clang::SemaObjC::BuildInstanceMessage(), BuildNonArrayForRange(), clang::Sema::BuildPackIndexingExpr(), clang::Sema::BuildPackIndexingType(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildStaticAssertDeclaration(), clang::Sema::BuildVAArgExpr(), BuiltinAnnotation(), BuiltinBswapg(), BuiltinCountZeroBitsGeneric(), BuiltinDumpStruct(), clang::Sema::BuiltinElementwiseTernaryMath(), BuiltinMaskedGather(), BuiltinMaskedScatter(), BuiltinMaskedStore(), BuiltinOverflow(), BuiltinPopcountg(), clang::SemaPPC::BuiltinPPCMMACall(), clang::Sema::BuiltinShuffleVector(), clang::Sema::BuiltinVectorMath(), clang::SemaPPC::BuiltinVSX(), clang::SemaWasm::BuiltinWasmRefIsNullExtern(), clang::SemaWasm::BuiltinWasmTableCopy(), clang::SemaWasm::BuiltinWasmTableFill(), clang::SemaWasm::BuiltinWasmTableGrow(), clang::SemaWasm::BuiltinWasmTestFunctionPointerSignature(), clang::Sema::canCalleeThrow(), clang::Sema::CanPerformCopyInitialization(), CastForMoving(), castForMoving(), clang::Sema::CheckAddressOfOperand(), CheckAllArgsHaveSameType(), clang::CheckAllArgsHaveSameType(), CheckAllArgTypesAreCorrect(), clang::CheckAllArgTypesAreCorrect(), CheckAnyScalarOrVector(), CheckArgTypeMatches(), checkArithmeticOrEnumeralThreeWayCompare(), clang::SemaARM::CheckARMCoprocessorImmediate(), CheckArrayDesignatorExpr(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckAssignmentOperands(), clang::SemaBPF::CheckBPFBuiltinFunctionCall(), clang::SemaOpenCL::checkBuiltinEnqueueKernel(), clang::SemaHLSL::CheckBuiltinFunctionCall(), clang::SemaX86::CheckBuiltinFunctionCall(), clang::SemaOpenCL::checkBuiltinKernelWorkGroupSize(), clang::SemaOpenCL::checkBuiltinNDRangeAndBlock(), checkBuiltinVectorMathArgTypes(), clang::SemaOpenACC::CheckCollapseLoopCount(), clang::checkCollectionLiteralElement(), clang::Sema::CheckConditionalOperands(), CheckConstexprFunctionBody(), CheckConstexprFunctionStmt(), clang::SemaObjC::CheckConversionToObjCLiteral(), clang::SemaAMDGPU::checkCoopAtomicFunctionCall(), clang::Sema::CheckCountedByAttrOnField(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), CheckEvalInICE(), CheckExpectedBitWidth(), checkExprMemoryConstraintCompat(), CheckFallThroughForBody(), CheckFoldOperand(), checkFormatStringExpr(), clang::Sema::CheckFunctionDeclaration(), clang::checkGenericCastToPtr(), CheckICE(), clang::SemaObjC::CheckImplementationIvars(), CheckMaskedBuiltinArgs(), CheckMoveOnConstruction(), CheckNakedParmReference(), clang::SemaARM::CheckNeonBuiltinFunctionCall(), CheckNonTypeTemplatePartialSpecializationArgs(), clang::SemaObjC::CheckObjCBridgeRelatedConversions(), CheckObjCCollectionLiteralElement(), clang::SemaObjC::CheckObjCString(), clang::checkOpenCLEnqueueIntType(), clang::SemaOpenMP::checkOpenMPDeclareVariantFunction(), checkOpenMPIterationSpace(), checkOpenMPLoop(), checkParamIsIntegerType(), clang::checkPipeArg(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::CheckPointerToMemberOperands(), checkRecursiveFunction(), clang::SemaOpenACC::CheckReductionVarType(), CheckResourceHandle(), CheckScalarOrVector(), checkSectionsDirective(), clang::Sema::CheckSingleAssignmentConstraints(), clang::SemaSPIRV::CheckSPIRVBuiltinFunctionCall(), CheckStmtInlineAttr(), CheckStringInit(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::checkStringLiteralArgumentAttr(), clang::SemaSystemZ::CheckSystemZBuiltinFunctionCall(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), checkThreeWayNarrowingConversion(), clang::SemaOpenACC::CheckTileSizeExpr(), clang::Sema::checkVariadicArgument(), CheckVectorSelect(), clang::CheckWasmBuiltinArgIsInteger(), clang::CheckWasmBuiltinArgIsTable(), CheckWaveActive(), CompareFormatSpecifiers(), clang::Sema::ConstantFoldAttrArgs(), clang::ento::containsMacro(), ConvertForConditional(), clang::Sema::ConvertMemberDefaultInitExpression(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinMatrixSubscriptExpr(), clang::SemaOpenACC::CreateFirstPrivateInitRecipe(), CreateIfFixit(), clang::Sema::CreateLaunchBoundsAttr(), createOverloadsForFixedParams(), clang::SemaOpenACC::CreatePrivateInitRecipe(), clang::SemaOpenACC::CreateReductionInitRecipe(), clang::Sema::DefaultVariadicArgumentPromotion(), clang::InitializationSequence::Diagnose(), clang::Sema::DiagnoseAlwaysNonNullPointer(), clang::Sema::DiagnoseAssignmentAsCondition(), DiagnoseBitwisePrecedence(), DiagnoseCastQual(), clang::Sema::DiagnoseCommaOperator(), DiagnoseConditionalPrecedence(), clang::Sema::DiagnoseEmptyLoopBody(), clang::Sema::DiagnoseImmediateEscalatingReason(), DiagnoseIndirectOrAsmJumpStmt(), DiagnoseIntInBoolContext(), DiagnoseLabelFollowedByDecl(), diagnoseLogicalNotOnLHSofCheck(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), diagnoseNoViableConversion(), diagnoseObjCLiteralComparison(), diagnoseRepeatedUseOfWeak(), DiagnoseShiftCompare(), diagnoseStringPlusChar(), diagnoseStringPlusInt(), DiagnoseSwitchLabelsFallthrough(), diagnoseTautologicalComparison(), clang::Sema::DiagnoseTypeTraitDetails(), clang::Sema::DiagnoseUnexpandedParameterPack(), DiagnoseUninitializedConstPtrUse(), DiagnoseUninitializedConstRefUse(), diagnoseWellFormedUnsatisfiedConstraintExpr(), clang::Sema::diagnoseZeroToNullptrConversion(), DiagUninitUse(), emitAndFixInvalidAsmCastLValue(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CIRGen::CIRGenModule::emitGlobalOpenACCDeclareDataOperands(), clang::SemaHLSL::emitLogicalOperatorFixIt(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CIRGen::CIRGenFunction::emitOpenACCIntExpr(), emitOutlinedFunctionPrologue(), clang::CodeGen::CodeGenFunction::EmitStopPoint(), clang::CodeGen::CodeGenModule::ErrorUnsupported(), clang::Expr::EvaluateAsConstantExpr(), clang::Sema::EvaluateConvertedConstantExpression(), EvaluateStmt(), evaluateVarDeclInit(), clang::Sema::GatherArgumentsForCall(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), getAndVerifyMatrixDimension(), clang::ArraySectionExpr::getBeginLoc(), clang::ArraySubscriptExpr::getBeginLoc(), clang::BinaryConditionalOperator::getBeginLoc(), clang::BinaryOperator::getBeginLoc(), clang::CallExpr::getBeginLoc(), clang::CapturedStmt::getBeginLoc(), clang::ConditionalOperator::getBeginLoc(), clang::CXXFoldExpr::getBeginLoc(), clang::CXXRewrittenBinaryOperator::getBeginLoc(), clang::DesignatedInitUpdateExpr::getBeginLoc(), clang::ExtVectorElementExpr::getBeginLoc(), clang::ImplicitCastExpr::getBeginLoc(), clang::MaterializeTemporaryExpr::getBeginLoc(), clang::MatrixSubscriptExpr::getBeginLoc(), clang::MemberExpr::getBeginLoc(), clang::MSPropertySubscriptExpr::getBeginLoc(), clang::ObjCIsaExpr::getBeginLoc(), clang::ObjCIvarRefExpr::getBeginLoc(), clang::ObjCPropertyRefExpr::getBeginLoc(), clang::PseudoObjectExpr::getBeginLoc(), clang::StmtSequence::getBeginLoc(), clang::UserDefinedLiteral::getBeginLoc(), getClobberConflictLocation(), clang::getExprText(), DerefSimplePtrArithFixableGadget::getFixits(), UUCAddAssignGadget::getFixits(), clang::ento::PathSensitiveBugReport::getLocation(), clang::CIRGen::CIRGenFunction::getOpenACCDataOperandInfo(), clang::CIRGen::OpenACCRecipeBuilder< RecipeTy >::getOrCreateRecipe(), clang::CXXRewrittenBinaryOperator::getSourceRange(), GetUnreachableLoc(), clang::ento::PathDiagnosticLocation::getValidSourceLocation(), GetVTablePointer(), handleAlwaysInlineAttr(), handleAtomicAttr(), handleDiagnoseAsBuiltinAttr(), handleDiagnoseIfAttr(), handleFallThroughAttr(), handleHLSLLoopHintAttr(), handleLoopHintAttr(), handleNoConvergentAttr(), handleNoInlineAttr(), handleNoMergeAttr(), handlePassObjectSizeAttr(), handlePatchableFunctionEntryAttr(), clang::SemaHLSL::handleVectorBinOpConversion(), ignoreUnsafeBufferInContainer(), ignoreUnsafeLibcCall(), clang::Sema::ImpCastExprToType(), clang::AnalysisDeclContext::isBodyAutosynthesizedFromModelFile(), IsEnumConstOrFromMacro(), isExpandedFromConfigurationMacro(), IsInitializerListConstructorConversion(), clang::Sema::IsIntegralPromotion(), clang::Sema::IsMemberPointerConversion(), isNullPointerValueTemplateArgument(), clang::Sema::IsPointerConversion(), clang::Expr::isUnusedResultAWarning(), IsUserDefinedConversion(), isValidDeadStmt(), IsVectorConversion(), MatchTemplateParameterKind(), maybeDiagnoseAssignmentToFunction(), clang::Sema::MaybeEmitAmbiguousAtomicConstraintsDiagnostic(), notInSafeBufferOptOut(), clang::Parser::ParseConstraintLogicalAndExpression(), clang::ento::ConditionBRVisitor::patternMatch(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformCopyInitialization(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::PrepareBuiltinElementwiseMathOneArgCall(), clang::ProgramPoint::printJson(), clang::processConstant32BitIntArgument(), clang::ento::ExprEngine::ProcessLoopExit(), clang::ento::ExprEngine::ProcessStmt(), ProcessStmtAttribute(), removePunyEdges(), clang::Sema::ResolveAndFixSingleFunctionTemplateSpecialization(), rewriteToArrayLiteral(), rewriteToDictionaryLiteral(), clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(), clang::CodeGen::CodeGenFunction::startOutlinedSEHHelper(), clang::Sema::SubstDefaultArgument(), clang::Sema::TemplateParameterListsAreEqual(), clang::SemaHLSL::transformInitList(), TryClassUnification(), clang::Sema::tryConvertExprToType(), TryCopyInitialization(), TryImplicitConversion(), TryLValueToRValueCast(), TryOrBuildParenListInitialization(), TryUserDefinedConversion(), clang::Sema::VerifyIntegerConstantExpression(), clang::ento::ExprEngine::Visit(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTNodeImporter::VisitExpr(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::ento::SuppressInlineDefensiveChecksVisitor::VisitNode(), and clang::ASTNodeImporter::VisitStmt().

◆  getEndLoc()

SourceLocation Stmt::getEndLoc ( ) const

Definition at line 362 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::SemaOpenACC::ActOnArraySectionExpr(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCondition(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnLambdaExpr(), clang::SemaOpenMP::ActOnOpenMPFuseDirective(), clang::SemaOpenMP::ActOnOpenMPInterchangeDirective(), clang::SemaOpenMP::ActOnOpenMPPermutationClause(), clang::SemaOpenMP::ActOnOpenMPReverseDirective(), clang::SemaOpenMP::ActOnOpenMPStripeDirective(), clang::SemaOpenMP::ActOnOpenMPTileDirective(), clang::SemaOpenMP::ActOnOpenMPUnrollDirective(), clang::Sema::ActOnParamDefaultArgumentError(), addBlockPointerConversion(), addFunctionPointerConversion(), clang::SemaObjC::adornBoolConversionDiagWithTernaryFixit(), clang::GCCAsmStmt::AnalyzeAsmString(), clang::Sema::BuildCStyleCastExpr(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildReturnStmt(), BuiltinDumpStruct(), BuiltinMaskedScatter(), BuiltinMaskedStore(), clang::Sema::BuiltinShuffleVector(), clang::SemaPPC::BuiltinVSX(), CheckAllArgsHaveSameType(), clang::CheckAllArgsHaveSameType(), CheckFallThroughForBody(), CheckFoldOperand(), clang::Sema::CheckLogicalOperands(), clang::SemaObjC::CheckObjCBridgeRelatedConversions(), clang::Sema::CheckPointerToMemberOperands(), clang::SemaSPIRV::CheckSPIRVBuiltinFunctionCall(), clang::ento::containsMacro(), clang::Sema::ConvertMemberDefaultInitExpression(), clang::Sema::CreateBuiltinBinOp(), clang::SemaOpenACC::CreateFirstPrivateInitRecipe(), CreateIfFixit(), clang::ento::CXXDestructorCall::CXXDestructorCall(), clang::Sema::DefaultVariadicArgumentPromotion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), DiagnoseBitwisePrecedence(), clang::Sema::DiagnoseCommaOperator(), DiagnoseConditionalPrecedence(), DiagnoseDirectIsaAccess(), DiagnoseIntInBoolContext(), diagnoseLogicalNotOnLHSofCheck(), DiagnoseNarrowingInInitList(), diagnoseNoViableConversion(), diagnoseObjCLiteralComparison(), clang::Sema::DiagnoseSentinelCalls(), DiagnoseShiftCompare(), diagnoseStringPlusChar(), diagnoseStringPlusInt(), clang::SemaHLSL::emitLogicalOperatorFixIt(), clang::CodeGen::CGObjCRuntime::EmitTryCatchStmt(), clang::CodeGen::CodeGenFunction::GenerateSEHFilterFunction(), clang::CodeGen::CodeGenFunction::GenerateSEHFinallyFunction(), clang::ObjCIsaExpr::getBaseLocEnd(), clang::BinaryConditionalOperator::getEndLoc(), clang::BinaryOperator::getEndLoc(), clang::BlockExpr::getEndLoc(), clang::CapturedStmt::getEndLoc(), clang::CaseStmt::getEndLoc(), clang::ConditionalOperator::getEndLoc(), clang::CoreturnStmt::getEndLoc(), clang::CoroutineSuspendExpr::getEndLoc(), clang::CStyleCastExpr::getEndLoc(), clang::CXXConstructExpr::getEndLoc(), clang::CXXFoldExpr::getEndLoc(), clang::CXXFunctionalCastExpr::getEndLoc(), clang::CXXRewrittenBinaryOperator::getEndLoc(), clang::CXXTemporaryObjectExpr::getEndLoc(), clang::CXXThrowExpr::getEndLoc(), clang::DependentCoawaitExpr::getEndLoc(), clang::DesignatedInitExpr::getEndLoc(), clang::DesignatedInitUpdateExpr::getEndLoc(), clang::ForStmt::getEndLoc(), clang::IfStmt::getEndLoc(), clang::ImplicitCastExpr::getEndLoc(), clang::MaterializeTemporaryExpr::getEndLoc(), clang::MemberExpr::getEndLoc(), clang::ObjCAtTryStmt::getEndLoc(), clang::ObjCBridgedCastExpr::getEndLoc(), clang::OMPArrayShapingExpr::getEndLoc(), clang::PseudoObjectExpr::getEndLoc(), clang::StmtSequence::getEndLoc(), clang::SwitchStmt::getEndLoc(), clang::WhileStmt::getEndLoc(), clang::CIRGen::OpenACCRecipeBuilder< RecipeTy >::getOrCreateRecipe(), clang::CXXRewrittenBinaryOperator::getSourceRange(), clang::FieldDecl::getSourceRange(), clang::ento::PathDiagnosticLocation::getValidSourceLocation(), isNullPointerValueTemplateArgument(), clang::Expr::isUnusedResultAWarning(), clang::Parser::ParseConstraintLogicalAndExpression(), clang::ento::ConditionBRVisitor::patternMatch(), rewriteToArrayLiteral(), rewriteToDictionaryLiteral(), clang::consumed::ConsumedAnalyzer::run(), clang::FunctionDecl::setBody(), clang::Declarator::setTrailingRequiresClause(), TryOrBuildParenListInitialization(), clang::ento::ExprEngine::VisitCXXDestructor(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), WalkUpFromCallExpr(), and WalkUpFromCXXOperatorCallExpr().

◆  getID()

int64_t Stmt::getID ( const ASTContext & Context ) const
Returns
Unique reproducible object identifier

Definition at line 374 of file Stmt.cpp.

References Stmt().

Referenced by printIndicesOfElementsToConstructJson(), clang::ento::Environment::printJson(), clang::ProgramPoint::printJson(), and printPendingInitLoopJson().

◆  getLikelihood() [1/3]

◆  getLikelihood() [2/3]

Stmt::Likelihood Stmt::getLikelihood ( const Stmt * S )
static
Returns
the likelihood of a statement.

Definition at line 167 of file Stmt.cpp.

References Stmt().

◆  getLikelihood() [3/3]

Stmt::Likelihood Stmt::getLikelihood ( const Stmt * Then,
const Stmt * Else )
static
Returns
the likelihood of the 'then' branch of an 'if' statement. The 'else' branch is required to determine whether both branches specify the same likelihood, which affects the result.

Definition at line 175 of file Stmt.cpp.

References getLikelihood(), LH_Likely, LH_None, LH_Unlikely, and Stmt().

◆  getLikelihoodAttr()

const Attr * Stmt::getLikelihoodAttr ( const Stmt * S )
static
Returns
the likelihood attribute of a statement.

Definition at line 171 of file Stmt.cpp.

References Stmt().

Referenced by clang::Sema::ActOnIfStmt(), and clang::CodeGen::CodeGenFunction::EmitWhileStmt().

◆  getSourceRange()

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 338 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCastExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXFoldExpr(), clang::Sema::ActOnCXXForRangeStmt(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnDependentMemberExpr(), clang::Sema::ActOnDesignatedInitializer(), clang::Sema::ActOnEffectExpression(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnGCCAsmStmt(), clang::SemaOpenACC::ActOnIntExpr(), clang::Sema::ActOnMSAsmStmt(), clang::SemaObjC::ActOnObjCAtSynchronizedOperand(), clang::SemaOpenMP::ActOnOMPArraySectionExpr(), clang::SemaOpenMP::ActOnOMPIteratorExpr(), clang::SemaOpenMP::ActOnOpenMPAllocateDirective(), clang::SemaOpenMP::ActOnOpenMPAtomicDirective(), clang::SemaOpenMP::ActOnOpenMPDeclareSimdDirective(), clang::SemaOpenMP::ActOnOpenMPDepobjClause(), clang::SemaOpenMP::ActOnOpenMPDetachClause(), clang::SemaOpenMP::ActOnOpenMPDeviceNum(), clang::SemaOpenMP::ActOnOpenMPDistScheduleClause(), clang::SemaOpenMP::ActOnOpenMPHasDeviceAddrClause(), clang::SemaOpenMP::ActOnOpenMPIsDevicePtrClause(), clang::SemaOpenMP::ActOnOpenMPScheduleClause(), clang::SemaOpenMP::ActOnOpenMPUsesAllocatorClause(), clang::Sema::ActOnParamDefaultArgument(), clang::Sema::ActOnStartLinkageSpecification(), clang::Sema::ActOnStartOfSwitchStmt(), clang::Sema::AddAlignedAttr(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddAssumeAlignedAttr(), addFixitForObjCARCConversion(), clang::interp::AddSubMulHelper(), AnalyzeBitFieldAssignment(), AnalyzeComparison(), AnalyzeImplicitConversions(), applyCocoaAPICheck(), clang::Sema::BoundsSafetyCheckUseOfCountAttrPtr(), BuildAddressSpaceIndex(), clang::Sema::BuildArrayType(), clang::Sema::BuildAsTypeExpr(), clang::Sema::BuildAtomicExpr(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), buildCoawaitCalls(), clang::Sema::BuildCompoundLiteralExpr(), BuildConvertedConstantExpression(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDeclaratorGroup(), clang::Sema::BuildExtVectorType(), clang::SemaObjC::BuildInstanceMessage(), clang::Sema::BuildMatrixType(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildNestedRequirement(), clang::SemaObjC::BuildObjCAtThrowStmt(), clang::SemaObjC::BuildObjCBoxedExpr(), clang::SemaObjC::BuildObjCBridgedCast(), clang::SemaObjC::BuildObjCNumericLiteral(), clang::SemaObjC::BuildObjCStringLiteral(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildStaticAssertDeclaration(), clang::Sema::BuildVAArgExpr(), clang::Sema::BuildVectorLiteral(), clang::Sema::BuildVectorType(), BuiltinAnnotation(), clang::SemaARM::BuiltinARMMemoryTaggingCall(), clang::SemaARM::BuiltinARMSpecialReg(), BuiltinCallWithStaticChain(), clang::Sema::BuiltinConstantArg(), clang::Sema::BuiltinConstantArgMultiple(), clang::Sema::BuiltinConstantArgPower2(), clang::Sema::BuiltinConstantArgRange(), clang::Sema::BuiltinConstantArgShiftedByte(), clang::Sema::BuiltinConstantArgShiftedByteOrXXFF(), BuiltinCpu(), BuiltinFunctionStart(), BuiltinInvoke(), BuiltinLaunder(), BuiltinMSVCAnnotation(), BuiltinOverflow(), clang::Sema::BuiltinShuffleVector(), clang::SemaWasm::BuiltinWasmRefIsNullExtern(), clang::SemaWasm::BuiltinWasmTableCopy(), clang::SemaWasm::BuiltinWasmTableFill(), clang::SemaWasm::BuiltinWasmTableGrow(), clang::SemaWasm::BuiltinWasmTestFunctionPointerSignature(), clang::interp::CallPtr(), clang::interp::CallVirt(), CastForMoving(), castForMoving(), clang::Sema::CheckAddressOfMemberAccess(), clang::Sema::CheckAddressOfOperand(), CheckAlignOfExpr(), checkAllocateClauses(), clang::SemaAMDGPU::CheckAMDGCNBuiltinFunctionCall(), clang::checkAMDGPUMaxNumWorkGroupsArguments(), checkArithmeticBinOpPointerOperands(), checkArithmeticNull(), checkArithmeticOnObjCPointer(), clang::SemaARM::CheckARMBuiltinExclusiveCall(), clang::SemaARM::CheckARMCoprocessorImmediate(), clang::checkArmStreamingBuiltin(), CheckArrayDesignatorExpr(), clang::CheckAssignmentToCountAttrPtrWithIncompletePointeeTy(), clang::interp::CheckBitCast(), CheckBitcastType(), clang::Sema::CheckBooleanCondition(), CheckBoolSelect(), clang::SemaBPF::CheckBPFBuiltinFunctionCall(), clang::SemaRISCV::CheckBuiltinFunctionCall(), clang::SemaX86::CheckBuiltinGatherScatterScale(), clang::SemaX86::CheckBuiltinRoundingOrSAE(), clang::SemaOpenCL::checkBuiltinRWPipe(), CheckBuiltinTargetInSupported(), CheckBuiltinTargetNotInUnsupported(), clang::SemaX86::CheckBuiltinTileDuplicate(), checkBuiltinVectorMathMixedEnums(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCastAlign(), clang::checkCollectionLiteralElement(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), checkConditionalBlockPointerCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), clang::Sema::checkConstantPointerAuthKey(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckConstraintSatisfaction(), clang::SemaAMDGPU::checkCoopAtomicFunctionCall(), clang::Sema::CheckCountedByAttrOnField(), CheckCXX98CompatAccessibleCopy(), clang::Sema::CheckCXXThrowOperand(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), CheckedIntArithmetic(), clang::Sema::checkEnumArithmeticConversions(), clang::Sema::CheckEnumConstant(), checkEnumTypesInSwitchStmt(), clang::Sema::CheckExceptionSpecCompatibility(), checkExprMemoryConstraintCompat(), clang::Sema::CheckFloatComparison(), CheckFoldOperand(), clang::Sema::CheckForConstantInitializer(), CheckFormatString(), CheckForModifiableLvalue(), clang::Sema::CheckFunctionCall(), clang::Sema::checkFunctionOrMethodParameterIndex(), clang::SemaARM::CheckImmediateArg(), clang::Sema::CheckImplicitConversion(), CheckIncrementDecrementOperand(), checkIndirectCopyRestoreSource(), CheckIndirectionOperand(), CheckKeyForObjCARCConversion(), clang::SemaRISCV::CheckLMUL(), clang::Sema::CheckLogicalOperands(), checkMapClauseExpressionBase(), checkMapConflicts(), clang::Sema::CheckMemberOperatorAccess(), clang::Sema::CheckMemberOperatorAccess(), clang::SemaObjC::CheckMessageArgumentTypes(), clang::SemaAMDGPU::checkMovDPPFunctionCall(), clang::SemaARM::CheckNeonBuiltinFunctionCall(), clang::interp::CheckNewDeleteForms(), CheckNonNullArgument(), CheckObjCCollectionLiteralElement(), clang::SemaObjC::CheckObjCForCollectionOperand(), checkObjCPointerIntrospection(), clang::SemaObjC::CheckObjCString(), clang::SemaOpenMP::checkOpenMPDeclareVariantFunction(), checkOpenMPIterationSpace(), checkOpenMPLoop(), clang::Sema::CheckPackExpansion(), clang::checkPipeArg(), clang::checkPipePacketType(), checkPointerAuthEnabled(), checkPointerAuthValue(), clang::Sema::CheckPointerConversion(), checkPointerIntegerMismatch(), clang::Sema::CheckPointerToMemberOperands(), clang::SemaPPC::CheckPPCBuiltinFunctionCall(), checkPreviousOMPAllocateAttribute(), clang::Sema::CheckRegparmAttr(), checkSimdlenSafelenSpecified(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::CheckSizelessVectorOperands(), checkSizelessVectorShift(), clang::SemaARM::CheckSMEBuiltinFunctionCall(), clang::Sema::CheckStaticArrayArgument(), CheckStringInit(), clang::Sema::CheckSubtractionOperands(), clang::SemaSystemZ::CheckSystemZBuiltinFunctionCall(), CheckTautologicalComparison(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), clang::Sema::CheckTemplateIdType(), clang::Sema::CheckTypenameType(), clang::Sema::checkUInt32Argument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), CheckUnicodeArithmeticConversions(), clang::Sema::CheckUnresolvedLookupAccess(), clang::Sema::CheckUnresolvedMemberAccess(), checkUnsafeAssignLiteral(), checkUnsafeAssignObject(), clang::Sema::checkUnsafeExprAssigns(), clang::Sema::CheckUseOfCXXMethodAsAddressOfOperand(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVectorOperands(), CheckVectorSelect(), checkVectorShift(), clang::CheckWasmBuiltinArgIsInteger(), clang::CheckWasmBuiltinArgIsTable(), CompareFormatSpecifiers(), clang::Sema::ConvertVectorExpr(), CopyObject(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateGenericSelectionExpr(), clang::Sema::CreateLaunchBoundsAttr(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateOverloadedUnaryOp(), clang::SemaOpenACC::CreateReductionInitRecipe(), createReferenceTemporary(), clang::Sema::CreateUnaryExprOrTypeTraitExpr(), clang::Sema::CXXCheckConditionalOperands(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::deduceVarTypeFromInitializer(), clang::InitializationSequence::Diagnose(), diagnoseAddressOfInvalidType(), clang::Sema::DiagnoseAlwaysNonNullPointer(), diagnoseAmbiguousConversion(), diagnoseArithmeticOnTwoFunctionPointers(), diagnoseArithmeticOnTwoVoidPointers(), clang::Sema::DiagnoseAssignmentAsCondition(), clang::Sema::DiagnoseAssignmentResult(), diagnoseBadCast(), DiagnoseBadConversion(), DiagnoseBadDivideOrRemainderValues(), DiagnoseBadFunctionCast(), DiagnoseBadShiftValues(), DiagnoseCastOfObjCSEL(), clang::Sema::DiagnoseCommaOperator(), clang::Sema::DiagnoseConditionalForNull(), DiagnoseConstAssignment(), diagnoseDistinctPointerComparison(), DiagnoseDivisionSizeofPointerOrArray(), clang::Sema::DiagnoseEqualityWithExtraParens(), DiagnoseFailedExplicitSpec(), DiagnoseFloatingImpCast(), diagnoseFunctionPointerToVoidComparison(), clang::Sema::DiagnoseImmediateEscalatingReason(), DiagnoseImpCast(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), DiagnoseNullConversion(), diagnosePointerIncompatibility(), DiagnoseRecursiveConstFields(), diagnoseRepeatedUseOfWeak(), clang::diagnoseRetainCycle(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSelfMove(), DiagnoseShiftCompare(), diagnoseTautologicalComparison(), DiagnoseUninitializedConstPtrUse(), DiagnoseUninitializedConstRefUse(), diagnoseUnknownAnyExpr(), DiagnoseUnusedComparison(), diagnoseWellFormedUnsatisfiedConstraintExpr(), clang::Sema::diagnoseZeroToNullptrConversion(), DiagRecursiveConstraintEval(), DiagUninitUse(), clang::interp::DoBitCastPtr(), doRewriteToUTF8StringBoxedExpressionHelper(), clang::CIRGen::ConstantEmitter::emitAbstract(), clang::CIRGen::CIRGenFunction::emitAggExprToLValue(), emitAndFixInvalidAsmCastLValue(), clang::CIRGen::CIRGenFunction::emitAnyExpr(), clang::CIRGen::CIRGenFunction::emitAnyExprToTemp(), clang::CIRGen::CIRGenFunction::emitArraySubscriptExpr(), clang::CIRGen::CIRGenFunction::emitArrayToPointerDecay(), emitAtomicCmpXchg(), emitAtomicCmpXchgFailureSet(), clang::CIRGen::CIRGenFunction::emitAtomicExpr(), clang::CIRGen::CIRGenFunction::emitAtomicInit(), clang::CIRGen::CIRGenFunction::emitAutoVarInit(), clang::CIRGen::CIRGenFunction::emitBinaryOperatorLValue(), emitBody(), emitBug(), emitBuiltinAlloca(), emitBuiltinBitOp(), clang::CIRGen::CIRGenFunction::emitBuiltinExpr(), clang::CIRGen::CIRGenFunction::emitBuiltinObjectSize(), clang::CIRGen::CIRGenFunction::emitCall(), clang::CIRGen::CIRGenFunction::emitCallArg(), clang::CIRGen::CIRGenFunction::emitCallExpr(), clang::CIRGen::CIRGenFunction::emitCallExprLValue(), clang::CIRGen::CIRGenFunction::emitCastLValue(), clang::CIRGen::CIRGenFunction::emitCheckedArgForAssume(), clang::CIRGen::CIRGenFunction::emitCompoundLiteralLValue(), clang::CodeGen::CodeGenFunction::EmitCompoundStmt(), clang::CIRGen::CIRGenFunction::emitConditionalBlocks(), clang::CIRGen::CIRGenFunction::emitCXXAggrConstructorCall(), clang::CIRGen::CIRGenFunction::emitCXXConstructExpr(), clang::CIRGen::CIRGenFunction::emitCXXDeleteExpr(), clang::CodeGen::CodeGenFunction::EmitCXXForRangeStmt(), clang::CIRGen::CIRGenFunction::emitCXXMemberCallExpr(), clang::CIRGen::CIRGenFunction::emitCXXMemberOrOperatorMemberCallExpr(), clang::CIRGen::CIRGenFunction::emitDeclRefLValue(), EmitDiagnosticForLogicalAndInLogicalOr(), clang::CodeGen::CodeGenFunction::EmitDoStmt(), clang::CIRGen::CIRGenFunction::emitDynamicCast(), clang::CIRGen::CIRGenFunction::emitExprAsInit(), clang::CIRGen::CIRGenFunction::emitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitForStmt(), emitFunctionDeclLValue(), emitGlobalVarDeclLValue(), clang::CIRGen::CIRGenFunction::emitIfOnBoolExpr(), clang::CodeGen::CodeGenFunction::EmitIfStmt(), clang::CodeGen::CodeGenFunction::emitImplicitAssignmentOperatorBody(), clang::EmitIncompleteCountedByPointeeNotes(), clang::CIRGen::CIRGenFunction::emitLValue(), clang::CIRGen::CIRGenFunction::emitMaterializeTemporaryExpr(), clang::CIRGen::CIRGenFunction::emitMemberExpr(), clang::CIRGen::CIRGenFunction::emitNewArrayInitializer(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), emitObjectDelete(), clang::CIRGen::CIRGenFunction::emitPredefinedLValue(), clang::CIRGen::CIRGenFunction::emitReturnStmt(), clang::CIRGen::CIRGenFunction::emitRotate(), clang::CIRGen::CIRGenFunction::emitScalarConstant(), clang::CIRGen::CIRGenFunction::emitScalarInit(), clang::CIRGen::CIRGenFunction::emitScalarOrConstFoldImmArg(), clang::CIRGen::CIRGenFunction::emitStringLiteralLValue(), emitSuspendExpr(), emitValToTemp(), clang::CodeGen::CodeGenFunction::EmitWhileStmt(), errorBuiltinNYI(), clang::CodeGen::CodeGenModule::ErrorUnsupported(), EvaluateArrayTypeTrait(), clang::Sema::EvaluateConvertedConstantExpression(), clang::CIRGen::CIRGenFunction::evaluateExprAsBool(), clang::CIRGen::CIRGenFunction::evaluateOrEmitBuiltinObjectSize(), EvaluateStmt(), clang::Sema::FinalizeDeclaration(), clang::SemaObjC::FindCompositeObjCPointerType(), FindConditionalOverload(), clang::findRetainCycleOwner(), findSubobject(), findTemplateParameterInType(), finishContextualImplicitConversion(), fixUPCAddressofArraySubscriptWithSpan(), clang::CIRGen::CIRGenFunction::generateCode(), clang::ento::CallEvent::getArgSourceRange(), clang::CIRGen::CIRGenModule::getConstantArrayFromStringLiteral(), clang::ParmVarDecl::getDefaultArgRange(), clang::Sema::getExprRange(), getLengthOnSingleLine(), clang::CountAttributedTypeLoc::getLocalSourceRange(), getNumThreads(), clang::CIRGen::OpenACCRecipeBuilder< RecipeTy >::getOrCreateRecipe(), clang::Sema::getPrintable(), getPrivateItem(), clang::ObjCMessageExpr::getReceiverRange(), clang::CIRGen::CIRGenFunction::ConstantEmission::getReferenceLValue(), clang::CapturedStmt::getSourceRange(), clang::ento::CallEvent::getSourceRange(), clang::ento::ObjCMethodCall::getSourceRange(), clang::SYCLKernelCallStmt::getSourceRange(), clang::TemplateArgumentLoc::getSourceRange(), GetUnreachableLoc(), handleCallbackAttr(), HandleConstructorCall(), clang::SemaObjC::HandleExprPropertyRefExpr(), handleFormatArgAttr(), handleFormatAttr(), handleFormatAttrCommon(), handleFormatMatchesAttr(), HandleFunctionCall(), handleInitPriorityAttr(), clang::SemaM68k::handleInterruptAttr(), clang::SemaMSP430::handleInterruptAttr(), handleIntIntBinOp(), handleLayoutVersion(), handleNonNullAttr(), handleOpenCLUnrollHint(), handleOwnershipAttr(), handlePassObjectSizeAttr(), handleSentinelAttr(), clang::SemaOpenCL::handleSubGroupSize(), handleWorkGroupSize(), clang::Expr::IgnoreUnlessSpelledInSource(), clang::Sema::ImpCastExprToType(), clang::interp::IncDecHelper(), clang::interp::interp__builtin_is_constant_evaluated(), clang::Sema::InvalidLogicalVectorOperands(), clang::interp::InvalidNewDeleteExpr(), clang::Sema::InvalidOperands(), isConfigurationValue(), isNonNegativeIntegerValue(), isNullPointerValueTemplateArgument(), clang::Expr::isUnusedResultAWarning(), LookupMemberExpr(), LookupMemberExprInRecord(), makeAttributeArgExpr(), makeClusterDimsArgExpr(), makeLaunchBoundsArgExpr(), clang::Sema::MaybeEmitAmbiguousAtomicConstraintsDiagnostic(), maybePutParensOnReceiver(), clang::interp::Neg(), clang::sema::nextPathEntryRange(), objectifyExpr(), OpenCLArithmeticConversions(), clang::Parser::ParseConstraintLogicalAndExpression(), clang::SemaObjC::ParseObjCStringLiteral(), clang::ento::ConditionBRVisitor::patternMatch(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), PointerAuthStringDiscriminator(), populateExecutedLinesWithFunctionSignature(), populateExecutedLinesWithStmt(), printExprAsWritten(), printIndicesOfElementsToConstructJson(), printPendingInitLoopJson(), clang::processConstant32BitIntArgument(), pushTemporaryCleanup(), clang::tooling::reallyIgnoreImplicit(), recordConversion(), clang::tooling::replaceStmtWithStmt(), clang::tooling::replaceStmtWithText(), clang::Sema::ResolveAndFixSingleFunctionTemplateSpecialization(), resolveBuiltinNewDeleteOverload(), clang::edit::rewriteObjCRedundantCallWithLiteral(), rewriteToArrayLiteral(), rewriteToArraySubscriptSet(), rewriteToBoolLiteral(), rewriteToCharLiteral(), rewriteToDictionaryLiteral(), rewriteToDictionarySubscriptSet(), rewriteToNumberLiteral(), rewriteToNumericBoxedExpression(), rewriteToSubscriptGetCommon(), sharedGetConstructorDestructorAttrExpr(), storeAnyExprIntoOneUnit(), clang::Sema::SubstDefaultArgument(), clang::TreeTransform< Derived >::TransformExprs(), tryDiagnoseOverloadedCast(), TryOrBuildParenListInitialization(), TryReinterpretCast(), clang::ConversionFixItGenerator::tryToFixConversion(), clang::Sema::tryToRecoverWithCall(), clang::Sema::ValueIsRunOfOnes(), clang::Sema::VerifyBitField(), clang::Sema::VerifyIntegerConstantExpression(), clang::SemaOpenMP::VerifyPositiveIntegerConstantInClause(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), WalkUpFromCallExpr(), and clang::Sema::WarnOnPendingNoDerefs().

◆  getStmtClass()

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

Definition at line 1472 of file Stmt.h.

References StmtBits.

Referenced by areEqualIntegers(), BuildParentMap(), clang::Sema::canThrow(), CheckConstexprFunctionStmt(), checkFormatStringExpr(), CheckICE(), clang::SemaObjC::CheckLiteralKind(), children(), ClassifyInternal(), clang::ArrayInitIndexExpr::classof(), clang::ArrayInitLoopExpr::classof(), clang::BinaryOperator::classof(), clang::CompoundAssignOperator::classof(), clang::CXXStdInitializerListExpr::classof(), clang::OpenACCConstructStmt::classof(), clang::UserDefinedLiteral::classof(), clang::RecursiveASTVisitor< Derived >::dataTraverseNode(), DiagUninitUse(), clang::CodeGen::CodeGenFunction::EmitCaseStmt(), clang::CIRGen::CIRGenFunction::emitLValue(), clang::CodeGen::CodeGenFunction::EmitSimpleStmt(), clang::CodeGen::CodeGenFunction::EmitStmt(), EvaluateStmt(), FindTypeTagExpr(), getBaseAlignmentAndOffsetFromLValue(), getBaseAlignmentAndOffsetFromPtr(), getBeginLoc(), clang::CXXNamedCastExpr::getCastName(), clang::ento::SValBuilder::getConstantVal(), getEnclosingParent(), getEndLoc(), clang::Expr::getExprLoc(), clang::ASTNodeKind::getFromNode(), clang::ento::ObjCMethodCall::getMessageKind(), getPrimaryDecl(), clang::threadSafety::getSourceLiteralString(), getSourceRange(), clang::ento::Environment::getSVal(), clang::CastExpr::getTrailingFPFeatures(), GetUnreachableLoc(), clang::Expr::HasSideEffects(), ignoreTransparentExprs(), isConditionForTerminator(), isConfigurationValue(), clang::Expr::isConstantInitializer(), clang::ParentMap::isConsumedExpr(), IsGlobalLValue(), isInLoop(), isInLoopBody(), isLoop(), clang::Expr::isOBJCGCCandidate(), isObjCObjectLiteral(), isSafeSpanTwoParamConstruct(), clang::Expr::isSameComparisonOperand(), clang::Expr::isUnusedResultAWarning(), rebuildPotentialResultsAsNonOdrUsed(), requiresParensToAddCast(), clang::CodeGen::CodeGenFunction::StartFunction(), clang::Sema::SubstConceptTemplateArguments(), clang::TreeTransform< Derived >::TransformCXXNamedCastExpr(), clang::TreeTransform< Derived >::TransformExpr(), clang::TreeTransform< Derived >::TransformStmt(), clang::threadSafety::SExprBuilder::translate(), updatePreInits(), clang::ento::ExprEngine::Visit(), clang::StmtVisitorBase< Ptr, ImplClass, RetTy, ParamTys >::Visit(), clang::ASTNodeImporter::VisitExplicitCastExpr(), clang::interp::Compiler< Emitter >::visitStmt(), clang::ento::ConditionBRVisitor::VisitTerminator(), and clang::ento::ConditionBRVisitor::VisitTrueTest().

◆  getStmtClassName()

◆  IgnoreContainers() [1/2]

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 205 of file Stmt.cpp.

References Stmt().

Referenced by clang::SemaOpenMP::ActOnOpenMPTargetDirective(), checkOpenMPLoop(), emitBody(), getNestedDistributeDirective(), clang::CodeGen::CGOpenMPRuntime::getNumTeamsExprForTargetDirective(), clang::CodeGen::CGOpenMPRuntime::getSingleCompoundChild(), and IgnoreContainers().

◆  IgnoreContainers() [2/2]

const Stmt * clang::Stmt::IgnoreContainers ( bool IgnoreCaptured = false ) const
inline

Definition at line 1545 of file Stmt.h.

References false, IgnoreContainers(), and Stmt().

◆  operator delete() [1/5]

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

Definition at line 1403 of file Stmt.h.

◆  operator delete() [2/5]

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

Definition at line 1404 of file Stmt.h.

◆  operator delete() [3/5]

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

Definition at line 1405 of file Stmt.h.

◆  operator delete() [4/5]

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

Definition at line 1406 of file Stmt.h.

◆  operator delete() [5/5]

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

Definition at line 107 of file Stmt.h.

◆  operator new() [1/4]

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

Definition at line 103 of file Stmt.h.

References bytes().

◆  operator new() [2/4]

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

Definition at line 82 of file Stmt.cpp.

References bytes(), and clang::C.

◆  operator new() [3/4]

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

Definition at line 1396 of file Stmt.h.

References bytes(), and clang::C.

◆  operator new() [4/4]

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

Definition at line 1401 of file Stmt.h.

References bytes().

◆  operator=() [1/2]

Stmt & clang::Stmt::operator= ( const Stmt & )
delete

References Stmt().

◆  operator=() [2/2]

Stmt & clang::Stmt::operator= ( Stmt && )
delete

References Stmt().

◆  printJson()

void Stmt::printJson ( raw_ostream & Out,
PrinterHelper * Helper,
const PrintingPolicy & Policy,
bool AddQuotes ) const

Pretty-prints in JSON format.

Definition at line 2959 of file StmtPrinter.cpp.

References clang::JsonFormat(), and printPretty().

Referenced by clang::ento::Environment::printJson(), and clang::ProgramPoint::printJson().

◆  printPretty()

◆  printPrettyControlled()

void Stmt::printPrettyControlled ( raw_ostream & OS,
PrinterHelper * Helper,
const PrintingPolicy & Policy,
unsigned Indentation = 0,
StringRef NewlineSymbol = "\n",
const ASTContext * Context = nullptr  ) const

Definition at line 2951 of file StmtPrinter.cpp.

References Stmt().

◆  PrintStats()

void Stmt::PrintStats ( )
static

Definition at line 109 of file Stmt.cpp.

References getStmtInfoTableEntry(), and StmtClassInfo.

Referenced by clang::ParseAST().

◆  ProcessODRHash()

void Stmt::ProcessODRHash ( llvm::FoldingSetNodeID & ID,
ODRHash & Hash ) const

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

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

Definition at line 2917 of file StmtProfile.cpp.

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

◆  Profile()

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

Produce a unique representation of the given statement.

Parameters
ID once the profiling operation is complete, will contain the unique representation of the given statement.
Context the AST context in which the statement resides
Canonical whether 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.
ProfileLambdaExpr whether or not to profile lambda expressions. When false, the lambda expressions are never considered to be equal to other lambda expressions. When true, the lambda expressions with the same implementation will be considered to be the same. ProfileLambdaExpr should only be true when we try to merge two declarations within modules.

Definition at line 2911 of file StmtProfile.cpp.

Referenced by actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPAtomicDirective(), clang::Sema::AreConstraintExpressionsEqual(), checkDeducedTemplateArguments(), clang::CheckEquivalentExceptionSpecImpl(), checkPreviousOMPAllocateAttribute(), DiagRecursiveConstraintEval(), getAllocatorKind(), clang::ASTContext::hasSameExpr(), clang::ASTContext::isSameConstraintExpr(), clang::ASTContext::isSameDefaultTemplateArgument(), clang::ASTContext::isSameTemplateArgument(), clang::Sema::MaybeEmitAmbiguousAtomicConstraintsDiagnostic(), clang::ConstantArrayType::Profile(), clang::DependentBitIntType::Profile(), clang::DependentSizedArrayType::Profile(), clang::DependentTypeOfExprType::Profile(), and clang::TemplateArgument::Profile().

◆  stripLabelLikeStatements() [1/2]

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

Definition at line 1550 of file Stmt.h.

References Stmt().

◆  stripLabelLikeStatements() [2/2]

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 227 of file Stmt.cpp.

References Stmt().

◆  viewAST()

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 20 of file StmtViz.cpp.

◆  ASTStmtReader

friend class ASTStmtReader
friend

Definition at line 100 of file Stmt.h.

References ASTStmtReader.

Referenced by ASTStmtReader.

◆  ASTStmtWriter

friend class ASTStmtWriter
friend

Definition at line 101 of file Stmt.h.

References ASTStmtWriter.

Referenced by ASTStmtWriter.

Member Data Documentation

◆  [union]

union { ... } clang::Stmt

◆  ArrayOrMatrixSubscriptExprBits

◆  ArrayTypeTraitExprBits

◆  AttributedStmtBits

◆  BinaryOperatorBits

BinaryOperatorBitfields clang::Stmt::BinaryOperatorBits

Definition at line 1336 of file Stmt.h.

Referenced by clang::BinaryOperator::BinaryOperator(), clang::BinaryOperator::BinaryOperator(), clang::BinaryOperator::BinaryOperator(), clang::BinaryOperator::BinaryOperator(), clang::BinaryOperator::getFPFeatures(), clang::BinaryOperator::getFPFeaturesInEffect(), clang::BinaryOperator::getOpcode(), clang::BinaryOperator::getOperatorLoc(), clang::BinaryOperator::getTrailingFPFeatures(), clang::BinaryOperator::getTrailingFPFeatures(), clang::BinaryOperator::hasExcludedOverflowPattern(), clang::BinaryOperator::hasStoredFPFeatures(), clang::BinaryOperator::offsetOfTrailingStorage(), clang::BinaryOperator::setExcludedOverflowPattern(), clang::BinaryOperator::setHasStoredFPFeatures(), clang::BinaryOperator::setOpcode(), clang::BinaryOperator::setOperatorLoc(), and clang::BinaryOperator::setStoredFPFeatures().

◆  CallExprBits

◆  CastExprBits

◆  CharacterLiteralBits

◆  ChooseExprBits

◆  CoawaitBits

◆  CompoundStmtBits

◆  ConstantExprBits

◆  ConvertVectorExprBits

◆  CXXBoolLiteralExprBits

◆  CXXConstructExprBits

CXXConstructExprBitfields clang::Stmt::CXXConstructExprBits

Definition at line 1363 of file Stmt.h.

Referenced by clang::CXXConstructExpr::CXXConstructExpr(), clang::CXXConstructExpr::getConstructionKind(), clang::CXXConstructExpr::getLocation(), clang::CXXConstructExpr::hadMultipleCandidates(), clang::CXXConstructExpr::isElidable(), clang::CXXConstructExpr::isImmediateEscalating(), clang::CXXConstructExpr::isListInitialization(), clang::CXXConstructExpr::isStdInitListInitialization(), clang::CXXConstructExpr::requiresZeroInitialization(), clang::CXXConstructExpr::setConstructionKind(), clang::CXXConstructExpr::setElidable(), clang::CXXConstructExpr::setHadMultipleCandidates(), clang::CXXConstructExpr::setIsImmediateEscalating(), clang::CXXConstructExpr::setListInitialization(), clang::CXXConstructExpr::setLocation(), clang::CXXConstructExpr::setRequiresZeroInitialization(), and clang::CXXConstructExpr::setStdInitListInitialization().

◆  CXXDefaultArgExprBits

◆  CXXDefaultInitExprBits

◆  CXXDeleteExprBits

◆  CXXDependentScopeMemberExprBits

◆  CXXFoldExprBits

CXXFoldExprBitfields clang::Stmt::CXXFoldExprBits

Definition at line 1376 of file Stmt.h.

Referenced by clang::CXXFoldExpr::CXXFoldExpr(), and clang::CXXFoldExpr::getOperator().

◆  CXXNewExprBits

◆  CXXNoexceptExprBits

CXXNoexceptExprBitfields clang::Stmt::CXXNoexceptExprBits

◆  CXXNullPtrLiteralExprBits

◆  CXXOperatorCallExprBits

CXXOperatorCallExprBitfields clang::Stmt::CXXOperatorCallExprBits

Definition at line 1350 of file Stmt.h.

Referenced by clang::CXXOperatorCallExpr::getOperator().

◆  CXXRewrittenBinaryOperatorBits

◆  CXXScalarValueInitExprBits

CXXScalarValueInitExprBitfields clang::Stmt::CXXScalarValueInitExprBits

◆  CXXThisExprBits

◆  CXXThrowExprBits

◆  CXXUnresolvedConstructExprBits

CXXUnresolvedConstructExprBitfields clang::Stmt::CXXUnresolvedConstructExprBits

◆  DeclRefExprBits

◆  DependentScopeDeclRefExprBits

DependentScopeDeclRefExprBitfields clang::Stmt::DependentScopeDeclRefExprBits

Definition at line 1362 of file Stmt.h.

◆  DoStmtBits

DoStmtBitfields clang::Stmt::DoStmtBits

Definition at line 1315 of file Stmt.h.

Referenced by clang::DoStmt::getDoLoc(), and clang::DoStmt::setDoLoc().

◆  ExprBits

◆  ExpressionTraitExprBits

◆  ExprWithCleanupsBits

ExprWithCleanupsBitfields clang::Stmt::ExprWithCleanupsBits

◆  FloatingLiteralBits

◆  ForStmtBits

ForStmtBitfields clang::Stmt::ForStmtBits

◆  GenericSelectionExprBits

GenericSelectionExprBitfields clang::Stmt::GenericSelectionExprBits

Definition at line 1339 of file Stmt.h.

Referenced by clang::GenericSelectionExpr::getGenericLoc().

◆  GotoStmtBits

◆  IfStmtBits

◆  InitListExprBits

InitListExprBitfields clang::Stmt::InitListExprBits

◆  LabelStmtBits

LabelStmtBitfields clang::Stmt::LabelStmtBits

Definition at line 1310 of file Stmt.h.

Referenced by clang::LabelStmt::getIdentLoc(), and clang::LabelStmt::setIdentLoc().

◆  LambdaExprBits

◆  LoopControlStmtBits

LoopControlStmtBitfields clang::Stmt::LoopControlStmtBits

Definition at line 1318 of file Stmt.h.

Referenced by clang::LoopControlStmt::getKwLoc(), and clang::LoopControlStmt::setKwLoc().

◆  MemberExprBits

◆  NullStmtBits

◆  ObjCIndirectCopyRestoreExprBits

ObjCIndirectCopyRestoreExprBitfields clang::Stmt::ObjCIndirectCopyRestoreExprBits

Definition at line 1383 of file Stmt.h.

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

◆  OpaqueValueExprBits

◆  OverloadExprBits

◆  PackIndexingExprBits

◆  ParenExprBits

◆  ParenListExprBits

ParenListExprBitfields clang::Stmt::ParenListExprBits

Definition at line 1338 of file Stmt.h.

Referenced by clang::ParenListExpr::getNumExprs().

◆  PredefinedExprBits

◆  PseudoObjectExprBits

PseudoObjectExprBitfields clang::Stmt::PseudoObjectExprBits

◆  RequiresExprBits

◆  ReturnStmtBits

ReturnStmtBitfields clang::Stmt::ReturnStmtBits

Definition at line 1319 of file Stmt.h.

Referenced by clang::ReturnStmt::getReturnLoc(), and clang::ReturnStmt::setReturnLoc().

◆  ShuffleVectorExprBits

◆  SourceLocExprBits

SourceLocExprBitfields clang::Stmt::SourceLocExprBits

◆  StmtBits

StmtBitfields clang::Stmt::StmtBits

Definition at line 1307 of file Stmt.h.

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

◆  StmtExprBits

StmtExprBitfields clang::Stmt::StmtExprBits

Definition at line 1346 of file Stmt.h.

Referenced by clang::StmtExpr::getTemplateDepth(), and clang::StmtExpr::StmtExpr().

◆  StringLiteralBits

◆  SubstNonTypeTemplateParmExprBits

◆  SwitchCaseBits

◆  SwitchStmtBits

◆  TypeTraitExprBits

◆  UnaryExprOrTypeTraitExprBits

◆  UnaryOperatorBits

◆  UnresolvedLookupExprBits

UnresolvedLookupExprBitfields clang::Stmt::UnresolvedLookupExprBits

Definition at line 1368 of file Stmt.h.

Referenced by clang::UnresolvedLookupExpr::requiresADL().

◆  UnresolvedMemberExprBits

UnresolvedMemberExprBitfields clang::Stmt::UnresolvedMemberExprBits

◆  WhileStmtBits

WhileStmtBitfields clang::Stmt::WhileStmtBits

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

Generated on for clang by doxygen 1.14.0

AltStyle によって変換されたページ (->オリジナル) /