clang: clang::Stmt Class Reference (original) (raw)

Stmt - This represents one statement. More...

#include "[clang/AST/Stmt.h](Stmt%5F8h%5Fsource.html)"

Classes
class ArrayOrMatrixSubscriptExprBitfields
class AttributedStmtBitfields
class BinaryOperatorBitfields
class BreakStmtBitfields
class CallExprBitfields
class CastExprBitfields
struct CastIterator
Iterator for iterating over Stmt * arrays that contain only T *. More...
class CharacterLiteralBitfields
class CoawaitExprBitfields
class CompoundStmtBitfields
class ConstantExprBitfields
class ContinueStmtBitfields
class CXXBoolLiteralExprBitfields
class CXXConstructExprBitfields
class CXXDefaultArgExprBitfields
class CXXDefaultInitExprBitfields
class CXXDeleteExprBitfields
class CXXDependentScopeMemberExprBitfields
class CXXNewExprBitfields
class CXXNoexceptExprBitfields
class CXXNullPtrLiteralExprBitfields
class CXXOperatorCallExprBitfields
class CXXRewrittenBinaryOperatorBitfields
class CXXScalarValueInitExprBitfields
class CXXThisExprBitfields
class CXXThrowExprBitfields
class CXXUnresolvedConstructExprBitfields
class DeclRefExprBitfields
class DependentScopeDeclRefExprBitfields
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 ExprWithCleanupsBitfields
class FloatingLiteralBitfields
class ForStmtBitfields
class GenericSelectionExprBitfields
class GotoStmtBitfields
class IfStmtBitfields
class InitListExprBitfields
class LabelStmtBitfields
class LambdaExprBitfields
class MemberExprBitfields
class NullStmtBitfields
class ObjCIndirectCopyRestoreExprBitfields
class OpaqueValueExprBitfields
class OverloadExprBitfields
class ParenExprBitfields
class ParenListExprBitfields
class PredefinedExprBitfields
class PseudoObjectExprBitfields
class RequiresExprBitfields
class ReturnStmtBitfields
class SourceLocExprBitfields
class StmtBitfields
class StmtExprBitfields
class StringLiteralBitfields
class SubstNonTypeTemplateParmExprBitfields
class SwitchCaseBitfields
class SwitchStmtBitfields
class TypeTraitExprBitfields
class UnaryExprOrTypeTraitExprBitfields
class UnaryOperatorBitfields
class UnresolvedLookupExprBitfields
class UnresolvedMemberExprBitfields
class WhileStmtBitfields
Public Types
enum StmtClass { NoStmtClass = 0 }
enum Likelihood { LH_Unlikely = -1 , LH_None, LH_Likely }
The likelihood of a branch being taken. More...
using child_iterator = StmtIterator
Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpressions of an AST node.
using const_child_iterator = ConstStmtIterator
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
Stmt & operator= (const Stmt &)=delete
Stmt & operator= (Stmt &&)=delete
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.
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.
Stmt * IgnoreContainers (bool IgnoreCaptured=false)
Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true.
const Stmt * IgnoreContainers (bool IgnoreCaptured=false) const
const Stmt * stripLabelLikeStatements () const
Strip off all label-like statements.
Stmt * stripLabelLikeStatements ()
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, 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 Attr * getLikelihoodAttr (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 }
enum { NumCallExprBits = 32 }
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 *.
using ExprIterator = CastIterator< Expr >
using ConstExprIterator = ConstCastIterator< Expr >
Protected Member Functions
void * operator new (size_t bytes) noexcept
void operator delete (void *data) noexcept
Stmt (StmtClass SC, EmptyShell)
Construct an empty statement.
Protected Attributes
union {
StmtBitfields StmtBits
NullStmtBitfields NullStmtBits
CompoundStmtBitfields CompoundStmtBits
LabelStmtBitfields LabelStmtBits
AttributedStmtBitfields AttributedStmtBits
IfStmtBitfields IfStmtBits
SwitchStmtBitfields SwitchStmtBits
WhileStmtBitfields WhileStmtBits
DoStmtBitfields DoStmtBits
ForStmtBitfields ForStmtBits
GotoStmtBitfields GotoStmtBits
ContinueStmtBitfields ContinueStmtBits
BreakStmtBitfields BreakStmtBits
ReturnStmtBitfields ReturnStmtBits
SwitchCaseBitfields SwitchCaseBits
ExprBitfields ExprBits
ConstantExprBitfields ConstantExprBits
PredefinedExprBitfields PredefinedExprBits
DeclRefExprBitfields DeclRefExprBits
FloatingLiteralBitfields FloatingLiteralBits
StringLiteralBitfields StringLiteralBits
CharacterLiteralBitfields CharacterLiteralBits
UnaryOperatorBitfields UnaryOperatorBits
UnaryExprOrTypeTraitExprBitfields UnaryExprOrTypeTraitExprBits
ArrayOrMatrixSubscriptExprBitfields ArrayOrMatrixSubscriptExprBits
CallExprBitfields CallExprBits
MemberExprBitfields MemberExprBits
CastExprBitfields CastExprBits
BinaryOperatorBitfields BinaryOperatorBits
InitListExprBitfields InitListExprBits
ParenListExprBitfields ParenListExprBits
GenericSelectionExprBitfields GenericSelectionExprBits
PseudoObjectExprBitfields PseudoObjectExprBits
SourceLocExprBitfields SourceLocExprBits
ParenExprBitfields ParenExprBits
StmtExprBitfields StmtExprBits
CXXOperatorCallExprBitfields CXXOperatorCallExprBits
CXXRewrittenBinaryOperatorBitfields CXXRewrittenBinaryOperatorBits
CXXBoolLiteralExprBitfields CXXBoolLiteralExprBits
CXXNullPtrLiteralExprBitfields CXXNullPtrLiteralExprBits
CXXThisExprBitfields CXXThisExprBits
CXXThrowExprBitfields CXXThrowExprBits
CXXDefaultArgExprBitfields CXXDefaultArgExprBits
CXXDefaultInitExprBitfields CXXDefaultInitExprBits
CXXScalarValueInitExprBitfields CXXScalarValueInitExprBits
CXXNewExprBitfields CXXNewExprBits
CXXDeleteExprBitfields CXXDeleteExprBits
TypeTraitExprBitfields TypeTraitExprBits
DependentScopeDeclRefExprBitfields DependentScopeDeclRefExprBits
CXXConstructExprBitfields CXXConstructExprBits
ExprWithCleanupsBitfields ExprWithCleanupsBits
CXXUnresolvedConstructExprBitfields CXXUnresolvedConstructExprBits
CXXDependentScopeMemberExprBitfields CXXDependentScopeMemberExprBits
OverloadExprBitfields OverloadExprBits
UnresolvedLookupExprBitfields UnresolvedLookupExprBits
UnresolvedMemberExprBitfields UnresolvedMemberExprBits
CXXNoexceptExprBitfields CXXNoexceptExprBits
SubstNonTypeTemplateParmExprBitfields SubstNonTypeTemplateParmExprBits
LambdaExprBitfields LambdaExprBits
RequiresExprBitfields RequiresExprBits
CoawaitExprBitfields CoawaitBits
ObjCIndirectCopyRestoreExprBitfields ObjCIndirectCopyRestoreExprBits
OpaqueValueExprBitfields OpaqueValueExprBits
};

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 1466 of file Stmt.h.

child_range

const_child_iterator

const_child_range

ConstCastIterator

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

Definition at line 1351 of file Stmt.h.

ConstExprIterator

ExprIterator

anonymous enum

Enumerator
NumExprBits

Definition at line 365 of file Stmt.h.

anonymous enum

Enumerator
NumCallExprBits

Definition at line 576 of file Stmt.h.

anonymous enum

Enumerator
NumOverloadExprBits

Definition at line 1078 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 1323 of file Stmt.h.

StmtClass

Enumerator
NoStmtClass

Definition at line 86 of file Stmt.h.

Stmt() [1/5]

Construct an empty statement.

Definition at line 1362 of file Stmt.h.

Stmt() [2/5]

clang::Stmt::Stmt ( ) delete

Stmt() [3/5]

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

Stmt() [4/5]

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

Stmt() [5/5]

addStmtClass()

void Stmt::addStmtClass ( const StmtClass s) static

child_begin() [1/2]

child_begin() [2/2]

child_end() [1/2]

child_end() [2/2]

children() [1/2]

Definition at line 294 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnFinishFunctionBody(), AnalyzeImplicitConversions(), CheckConstexprFunctionBody(), CheckNakedParmReference(), checkNoThrow(), child_begin(), child_end(), children(), clang::Expr::HasSideEffects(), isCapturedBy(), isSimdSupportedByOpenMPIRBuilder(), IsStructurallyEquivalent(), clang::ento::retaincountchecker::RetainCountChecker::processObjCLiterals(), and GlobalDeclRefChecker::VisitExpr().

children() [2/2]

determineLikelihoodConflict()

std::tuple< bool, const Attr *, const Attr * > Stmt::determineLikelihoodConflict ( const Stmt * Then, const Stmt * Else ) static

dump() [1/2]

LLVM_DUMP_METHOD void Stmt::dump ( ) const

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 299 of file ASTDumper.cpp.

References P.

dumpPretty()

void Stmt::dumpPretty ( const ASTContext & Context ) const

EnableStatistics()

void Stmt::EnableStatistics ( ) static

getBeginLoc()

Definition at line 345 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::ActOnIfStmt(), clang::Sema::ActOnLabelStmt(), clang::Sema::ActOnMSAsmStmt(), clang::Sema::ActOnNoexceptSpec(), clang::SemaOpenMP::ActOnOpenMPAtomicDirective(), clang::SemaOpenMP::ActOnOpenMPDispatchDirective(), clang::SemaOpenMP::ActOnOpenMPDistScheduleClause(), clang::SemaOpenMP::ActOnOpenMPInterchangeDirective(), clang::SemaOpenMP::ActOnOpenMPLinearClause(), clang::SemaOpenMP::ActOnOpenMPMessageClause(), clang::SemaOpenMP::ActOnOpenMPOrderedDirective(), clang::SemaOpenMP::ActOnOpenMPPermutationClause(), clang::SemaOpenMP::ActOnOpenMPReverseDirective(), clang::SemaOpenMP::ActOnOpenMPScheduleClause(), clang::SemaOpenMP::ActOnOpenMPTileDirective(), clang::SemaOpenMP::ActOnOpenMPUnrollDirective(), clang::SemaHLSL::ActOnOutParamExpr(), clang::Sema::ActOnPackIndexingExpr(), clang::Sema::ActOnStmtExprResult(), clang::Sema::ActOnWhileStmt(), clang::Sema::AddAllocAlignAttr(), clang::Sema::AddConversionCandidate(), clang::SemaObjC::adornBoolConversionDiagWithTernaryFixit(), AnalyzeAssignment(), AnalyzeBitFieldAssignment(), AnalyzeImplicitConversions(), 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::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildDeclRefExpr(), clang::SemaObjC::BuildInstanceMessage(), BuildNonArrayForRange(), clang::Sema::BuildPackIndexingExpr(), clang::Sema::BuildPackIndexingType(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildStaticAssertDeclaration(), clang::Sema::BuildVAArgExpr(), BuiltinAnnotation(), BuiltinCountZeroBitsGeneric(), BuiltinDumpStruct(), clang::Sema::BuiltinElementwiseTernaryMath(), BuiltinOverflow(), BuiltinPopcountg(), clang::SemaPPC::BuiltinPPCMMACall(), clang::Sema::BuiltinShuffleVector(), clang::Sema::BuiltinVectorMath(), clang::SemaPPC::BuiltinVSX(), clang::SemaWasm::BuiltinWasmTableCopy(), clang::SemaWasm::BuiltinWasmTableFill(), clang::SemaWasm::BuiltinWasmTableGrow(), calculateConstraintSatisfaction(), clang::Sema::CanPerformCopyInitialization(), castForMoving(), CastForMoving(), clang::Sema::CheckAddressOfOperand(), CheckAnyScalarOrVector(), CheckArgTypeIsCorrect(), CheckArgTypeMatches(), checkArithmeticOrEnumeralThreeWayCompare(), clang::SemaARM::CheckARMCoprocessorImmediate(), clang::Sema::CheckAssignmentConstraints(), clang::Sema::CheckAssignmentOperands(), CheckAtomicAlignment(), clang::SemaBPF::CheckBPFBuiltinFunctionCall(), clang::SemaOpenCL::checkBuiltinEnqueueKernel(), clang::SemaX86::CheckBuiltinFunctionCall(), clang::SemaHLSL::CheckBuiltinFunctionCall(), clang::SemaOpenCL::checkBuiltinKernelWorkGroupSize(), clang::SemaOpenCL::checkBuiltinNDRangeAndBlock(), checkBuiltinVerboseTrap(), clang::SemaOpenACC::CheckCollapseLoopCount(), clang::Sema::CheckConditionalOperands(), CheckConstexprFunctionBody(), clang::SemaObjC::CheckConversionToObjCLiteral(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), CheckEvalInICE(), checkExprMemoryConstraintCompat(), CheckFallThroughForBody(), CheckFoldOperand(), clang::Sema::CheckFunctionDeclaration(), CheckICE(), clang::SemaObjC::CheckImplementationIvars(), clang::Sema::CheckMemberPointerConversion(), CheckMoveOnConstruction(), CheckNakedParmReference(), clang::SemaARM::CheckNeonBuiltinFunctionCall(), CheckNonTypeTemplatePartialSpecializationArgs(), clang::SemaObjC::CheckObjCBridgeRelatedConversions(), CheckObjCCollectionLiteralElement(), clang::SemaObjC::CheckObjCString(), clang::checkOpenCLEnqueueIntType(), clang::SemaOpenMP::checkOpenMPDeclareVariantFunction(), checkOpenMPLoop(), checkParamIsIntegerType(), clang::checkPipeArg(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::CheckPointerToMemberOperands(), checkRecursiveFunction(), CheckResourceHandle(), CheckScalarOrVector(), checkSectionsDirective(), clang::Sema::CheckSingleAssignmentConstraints(), clang::SemaSPIRV::CheckSPIRVBuiltinFunctionCall(), CheckStmtInlineAttr(), CheckStringInit(), clang::Sema::checkStringLiteralArgumentAttr(), clang::SemaSystemZ::CheckSystemZBuiltinFunctionCall(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), checkThreeWayNarrowingConversion(), clang::SemaOpenACC::CheckTileSizeExpr(), clang::Sema::checkVariadicArgument(), CheckVectorElementCallArgs(), CheckVectorSelect(), clang::CheckWasmBuiltinArgIsInteger(), clang::CheckWasmBuiltinArgIsTable(), CheckWaveActive(), clang::Sema::ConstantFoldAttrArgs(), ConvertForConditional(), clang::Sema::ConvertMemberDefaultInitExpression(), clang::Sema::CorrectDelayedTyposInExpr(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::CreateBuiltinMatrixSubscriptExpr(), CreateIfFixit(), clang::Sema::CreateLaunchBoundsAttr(), createOverloadsForFixedParams(), 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(), DiagnoseLabelFollowedByDecl(), diagnoseLogicalNotOnLHSofCheck(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), diagnoseNoViableConversion(), diagnoseObjCLiteralComparison(), diagnoseRepeatedUseOfWeak(), DiagnoseShiftCompare(), diagnoseStringPlusChar(), diagnoseStringPlusInt(), diagnoseTautologicalComparison(), clang::Sema::DiagnoseUnexpandedParameterPack(), DiagnoseUninitializedConstRefUse(), diagnoseUnsatisfiedRequirement(), diagnoseWellFormedUnsatisfiedConstraintExpr(), clang::Sema::diagnoseZeroToNullptrConversion(), DiagUninitUse(), emitAndFixInvalidAsmCastLValue(), clang::SemaHLSL::emitLogicalOperatorFixIt(), emitOutlinedFunctionPrologue(), clang::Sema::EvaluateConvertedConstantExpression(), evaluateVarDeclInit(), clang::Sema::GatherArgumentsForCall(), getAndVerifyMatrixDimension(), clang::StmtSequence::getBeginLoc(), clang::UserDefinedLiteral::getBeginLoc(), clang::MSPropertyRefExpr::getBeginLoc(), clang::OMPCanonicalLoop::getBeginLoc(), clang::ConstantExpr::getBeginLoc(), clang::OpaqueValueExpr::getBeginLoc(), clang::ImaginaryLiteral::getBeginLoc(), clang::ArraySubscriptExpr::getBeginLoc(), clang::MatrixSubscriptExpr::getBeginLoc(), clang::CallExpr::getBeginLoc(), clang::MemberExpr::getBeginLoc(), clang::ImplicitCastExpr::getBeginLoc(), clang::BinaryOperator::getBeginLoc(), clang::ConditionalOperator::getBeginLoc(), clang::BinaryConditionalOperator::getBeginLoc(), clang::DesignatedInitUpdateExpr::getBeginLoc(), clang::ExtVectorElementExpr::getBeginLoc(), clang::PseudoObjectExpr::getBeginLoc(), clang::ArraySectionExpr::getBeginLoc(), clang::HLSLOutArgExpr::getBeginLoc(), clang::CXXRewrittenBinaryOperator::getBeginLoc(), clang::CXXStdInitializerListExpr::getBeginLoc(), clang::MSPropertySubscriptExpr::getBeginLoc(), clang::CXXBindTemporaryExpr::getBeginLoc(), clang::ExprWithCleanups::getBeginLoc(), clang::PackExpansionExpr::getBeginLoc(), clang::MaterializeTemporaryExpr::getBeginLoc(), clang::CXXFoldExpr::getBeginLoc(), clang::ObjCIvarRefExpr::getBeginLoc(), clang::ObjCPropertyRefExpr::getBeginLoc(), clang::ObjCSubscriptRefExpr::getBeginLoc(), clang::ObjCIsaExpr::getBeginLoc(), clang::CapturedStmt::getBeginLoc(), getExprText(), DerefSimplePtrArithFixableGadget::getFixits(), UUCAddAssignGadget::getFixits(), clang::PackIndexingExpr::getPackLoc(), clang::CXXRewrittenBinaryOperator::getSourceRange(), clang::ento::PathDiagnosticLocation::getValidSourceLocation(), handleAlwaysInlineAttr(), handleDiagnoseAsBuiltinAttr(), handleDiagnoseIfAttr(), handleFallThroughAttr(), handleHLSLLoopHintAttr(), handleLoopHintAttr(), handleNoConvergentAttr(), handleNoInlineAttr(), handleNoMergeAttr(), HandleOperatorNewCall(), handlePassObjectSizeAttr(), handlePatchableFunctionEntryAttr(), clang::SemaHLSL::handleVectorBinOpConversion(), clang::Sema::ImpCastExprToType(), clang::AnalysisDeclContext::isBodyAutosynthesizedFromModelFile(), IsEnumConstOrFromMacro(), IsInitializerListConstructorConversion(), clang::Sema::IsIntegralPromotion(), clang::Sema::IsMemberPointerConversion(), isNullPointerValueTemplateArgument(), clang::Sema::IsPointerConversion(), clang::Expr::isUnusedResultAWarning(), IsUserDefinedConversion(), IsVectorConversion(), clang::Sema::MarkMemberReferenced(), MatchTemplateParameterKind(), maybeDiagnoseAssignmentToFunction(), clang::Sema::MaybeEmitAmbiguousAtomicConstraintsDiagnostic(), clang::Parser::ParseConstraintLogicalAndExpression(), clang::ento::ConditionBRVisitor::patternMatch(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformCopyInitialization(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::PrepareBuiltinElementwiseMathOneArgCall(), clang::ento::ExprEngine::ProcessStmt(), ProcessStmtAttribute(), removePunyEdges(), clang::Sema::ResolveAndFixSingleFunctionTemplateSpecialization(), rewriteToArrayLiteral(), rewriteToDictionaryLiteral(), clang::CodeGen::CGOpenMPRuntime::scanForTargetRegionsFunctions(), clang::TopLevelStmtDecl::setStmt(), clang::Sema::SubstDefaultArgument(), clang::Sema::TemplateParameterListsAreEqual(), EnsureImmediateInvocationInDefaultArgs::TransformSourceLocExpr(), TryClassUnification(), clang::Sema::tryConvertExprToType(), TryCopyInitialization(), TryImplicitConversion(), TryLValueToRValueCast(), TryOrBuildParenListInitialization(), TryUserDefinedConversion(), clang::Sema::VerifyIntegerConstantExpression(), clang::ASTNodeImporter::VisitArrayTypeTraitExpr(), clang::ASTNodeImporter::VisitCXXDefaultInitExpr(), clang::ASTNodeImporter::VisitCXXDeleteExpr(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTNodeImporter::VisitCXXNoexceptExpr(), clang::ASTNodeImporter::VisitExpr(), clang::ASTNodeImporter::VisitExpressionTraitExpr(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::ASTNodeImporter::VisitGNUNullExpr(), clang::ento::SuppressInlineDefensiveChecksVisitor::VisitNode(), clang::ASTNodeImporter::VisitPredefinedExpr(), clang::ASTNodeImporter::VisitShuffleVectorExpr(), clang::ASTNodeImporter::VisitSourceLocExpr(), and clang::ASTNodeImporter::VisitTypeTraitExpr().

getEndLoc()

Definition at line 357 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::SemaOpenACC::ActOnArraySectionExpr(), clang::Sema::ActOnCondition(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnLambdaExpr(), clang::SemaOpenMP::ActOnOpenMPInterchangeDirective(), clang::SemaOpenMP::ActOnOpenMPPermutationClause(), clang::SemaOpenMP::ActOnOpenMPReverseDirective(), clang::SemaOpenMP::ActOnOpenMPTileDirective(), clang::SemaOpenMP::ActOnOpenMPUnrollDirective(), clang::Sema::ActOnParamDefaultArgumentError(), addBlockPointerConversion(), addFunctionPointerConversion(), clang::SemaObjC::adornBoolConversionDiagWithTernaryFixit(), clang::Sema::BuildCStyleCastExpr(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildReturnStmt(), BuiltinDumpStruct(), clang::Sema::BuiltinShuffleVector(), clang::SemaPPC::BuiltinVSX(), CheckFallThroughForBody(), CheckFoldOperand(), clang::Sema::CheckLogicalOperands(), clang::SemaObjC::CheckObjCBridgeRelatedConversions(), clang::Sema::CheckPointerToMemberOperands(), CheckVectorElementCallArgs(), clang::Sema::ConvertMemberDefaultInitExpression(), clang::Sema::CorrectDelayedTyposInExpr(), clang::Sema::CreateBuiltinBinOp(), CreateIfFixit(), clang::ento::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::SemaHLSL::emitLogicalOperatorFixIt(), clang::CodeGen::CGObjCRuntime::EmitTryCatchStmt(), clang::ObjCIsaExpr::getBaseLocEnd(), clang::StmtSequence::getEndLoc(), clang::ForStmt::getEndLoc(), clang::SEHTryStmt::getEndLoc(), clang::CXXTryStmt::getEndLoc(), clang::OMPCanonicalLoop::getEndLoc(), clang::ConstantExpr::getEndLoc(), clang::OpaqueValueExpr::getEndLoc(), clang::ImaginaryLiteral::getEndLoc(), clang::CallExpr::getEndLoc(), clang::MemberExpr::getEndLoc(), clang::ImplicitCastExpr::getEndLoc(), clang::CStyleCastExpr::getEndLoc(), clang::BinaryOperator::getEndLoc(), clang::ConditionalOperator::getEndLoc(), clang::BinaryConditionalOperator::getEndLoc(), clang::DesignatedInitExpr::getEndLoc(), clang::DesignatedInitUpdateExpr::getEndLoc(), clang::BlockExpr::getEndLoc(), clang::PseudoObjectExpr::getEndLoc(), clang::HLSLOutArgExpr::getEndLoc(), clang::CXXRewrittenBinaryOperator::getEndLoc(), clang::CXXStdInitializerListExpr::getEndLoc(), clang::CXXThrowExpr::getEndLoc(), clang::CXXBindTemporaryExpr::getEndLoc(), clang::CXXConstructExpr::getEndLoc(), clang::CXXFunctionalCastExpr::getEndLoc(), clang::CXXTemporaryObjectExpr::getEndLoc(), clang::CXXDeleteExpr::getEndLoc(), clang::ExprWithCleanups::getEndLoc(), clang::CXXUnresolvedConstructExpr::getEndLoc(), clang::MaterializeTemporaryExpr::getEndLoc(), clang::CXXFoldExpr::getEndLoc(), clang::CoroutineSuspendExpr::getEndLoc(), clang::DependentCoawaitExpr::getEndLoc(), clang::ObjCStringLiteral::getEndLoc(), clang::ObjCBridgedCastExpr::getEndLoc(), clang::OMPArrayShapingExpr::getEndLoc(), clang::CaseStmt::getEndLoc(), clang::DefaultStmt::getEndLoc(), clang::LabelStmt::getEndLoc(), clang::AttributedStmt::getEndLoc(), clang::IfStmt::getEndLoc(), clang::SwitchStmt::getEndLoc(), clang::WhileStmt::getEndLoc(), clang::ReturnStmt::getEndLoc(), clang::CapturedStmt::getEndLoc(), clang::CXXCatchStmt::getEndLoc(), clang::CXXForRangeStmt::getEndLoc(), clang::MSDependentExistsStmt::getEndLoc(), clang::CoreturnStmt::getEndLoc(), clang::ObjCForCollectionStmt::getEndLoc(), clang::ObjCAtCatchStmt::getEndLoc(), clang::ObjCAtFinallyStmt::getEndLoc(), clang::ObjCAtTryStmt::getEndLoc(), clang::ObjCAtThrowStmt::getEndLoc(), clang::ObjCAutoreleasePoolStmt::getEndLoc(), UUCAddAssignGadget::getFixits(), clang::CXXRewrittenBinaryOperator::getSourceRange(), clang::FieldDecl::getSourceRange(), clang::TopLevelStmtDecl::getSourceRange(), clang::BlockDecl::getSourceRange(), clang::ConceptDecl::getSourceRange(), isNullPointerValueTemplateArgument(), clang::Expr::isUnusedResultAWarning(), clang::Parser::ParseConstraintLogicalAndExpression(), clang::ento::ConditionBRVisitor::patternMatch(), rewriteToArrayLiteral(), rewriteToDictionaryLiteral(), clang::consumed::ConsumedAnalyzer::run(), clang::FunctionDecl::setBody(), clang::Declarator::setTrailingRequiresClause(), EnsureImmediateInvocationInDefaultArgs::TransformSourceLocExpr(), TryOrBuildParenListInitialization(), clang::ASTNodeImporter::VisitArrayTypeTraitExpr(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTNodeImporter::VisitCXXNoexceptExpr(), clang::ASTNodeImporter::VisitExpressionTraitExpr(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::ASTNodeImporter::VisitLambdaExpr(), clang::ASTNodeImporter::VisitSourceLocExpr(), and clang::ASTNodeImporter::VisitTypeTraitExpr().

getID()

int64_t Stmt::getID ( const ASTContext & Context ) const

getLikelihood() [1/3]

getLikelihood() [2/3]

Returns

the likelihood of a statement.

Definition at line 166 of file Stmt.cpp.

getLikelihood() [3/3]

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

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

getLikelihoodAttr()

const Attr * Stmt::getLikelihoodAttr ( const Stmt * S) static

getSourceRange()

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 333 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::ActOnOpenMPDependClause(), clang::SemaOpenMP::ActOnOpenMPDepobjClause(), clang::SemaOpenMP::ActOnOpenMPDetachClause(), clang::SemaOpenMP::ActOnOpenMPDistScheduleClause(), clang::SemaOpenMP::ActOnOpenMPHasDeviceAddrClause(), clang::SemaOpenMP::ActOnOpenMPIsDevicePtrClause(), clang::SemaOpenMP::ActOnOpenMPScheduleClause(), 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(), 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::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(), BuiltinLaunder(), BuiltinMSVCAnnotation(), BuiltinOverflow(), clang::Sema::BuiltinShuffleVector(), clang::SemaWasm::BuiltinWasmTableCopy(), clang::SemaWasm::BuiltinWasmTableFill(), clang::SemaWasm::BuiltinWasmTableGrow(), calculateConstraintSatisfaction(), 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(), 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(), checkBuiltinVerboseTrap(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckCastAlign(), clang::Sema::CheckCompareOperands(), clang::Sema::CheckCompleteVariableDeclaration(), checkCondition(), checkConditionalBlockPointerCompatibility(), clang::Sema::CheckConditionalOperands(), checkConditionalPointerCompatibility(), clang::Sema::checkConstantPointerAuthKey(), clang::Sema::CheckConstraintExpression(), CheckCXX98CompatAccessibleCopy(), clang::Sema::CheckCXXThrowOperand(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), CheckedIntArithmetic(), checkEnumArithmeticConversions(), clang::Sema::CheckEnumConstant(), checkEnumTypesInSwitchStmt(), clang::Sema::CheckExceptionSpecCompatibility(), checkExprMemoryConstraintCompat(), clang::Sema::CheckExtraCXXDefaultArguments(), 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::CheckMemberPointerConversion(), clang::SemaObjC::CheckMessageArgumentTypes(), clang::SemaAMDGPU::checkMovDPPFunctionCall(), clang::SemaARM::CheckNeonBuiltinFunctionCall(), clang::interp::CheckNewDeleteForms(), CheckNonNullArgument(), CheckObjCCollectionLiteralElement(), clang::SemaObjC::CheckObjCForCollectionOperand(), checkObjCPointerIntrospection(), clang::SemaObjC::CheckObjCString(), checkOpenCLConditionVector(), 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::Sema::CheckSwitchCondition(), clang::SemaSystemZ::CheckSystemZBuiltinFunctionCall(), CheckTautologicalComparison(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), clang::Sema::CheckTemplateIdType(), clang::Sema::CheckTypenameType(), clang::Sema::checkUInt32Argument(), clang::Sema::CheckUnaryExprOrTypeTraitOperand(), 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(), constructDebugPieceForTrackedCondition(), clang::Sema::ConvertVectorExpr(), CopyObject(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinUnaryOp(), clang::Sema::CreateGenericSelectionExpr(), clang::Sema::CreateLaunchBoundsAttr(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreateOverloadedUnaryOp(), 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(), 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::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), DiagnoseNullConversion(), diagnosePointerIncompatibility(), DiagnoseRecursiveConstFields(), diagnoseRepeatedUseOfWeak(), clang::diagnoseRetainCycle(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSelfMove(), DiagnoseShiftCompare(), diagnoseTautologicalComparison(), DiagnoseUninitializedConstRefUse(), diagnoseUnknownAnyExpr(), DiagnoseUnusedComparison(), diagnoseWellFormedUnsatisfiedConstraintExpr(), clang::Sema::diagnoseZeroToNullptrConversion(), DiagRecursiveConstraintEval(), clang::interp::DiagTypeid(), DiagUninitUse(), doRewriteToUTF8StringBoxedExpressionHelper(), emitAndFixInvalidAsmCastLValue(), emitBug(), EmitDiagnosticForLogicalAndInLogicalOr(), clang::CIRGen::CIRGenModule::emitGlobalVarDefinition(), clang::CodeGen::CGOpenMPRuntime::emitIfClause(), EvaluateArrayTypeTrait(), clang::Sema::EvaluateConvertedConstantExpression(), clang::Sema::FinalizeDeclaration(), clang::SemaObjC::FindCompositeObjCPointerType(), FindConditionalOverload(), clang::findRetainCycleOwner(), findSubobject(), findTemplateParameterInType(), finishContextualImplicitConversion(), clang::ento::CallEvent::getArgSourceRange(), clang::ParmVarDecl::getDefaultArgRange(), clang::syntax::TreeBuilder::getExprRange(), clang::Sema::getExprRange(), clang::CountAttributedTypeLoc::getLocalSourceRange(), getNumThreads(), getPrivateItem(), clang::interp::SourceInfo::getRange(), clang::ObjCMessageExpr::getReceiverRange(), clang::ento::CallEvent::getSourceRange(), clang::CXXStdInitializerListExpr::getSourceRange(), clang::CapturedStmt::getSourceRange(), clang::TemplateArgumentLoc::getSourceRange(), clang::ento::ObjCMethodCall::getSourceRange(), GetUnreachableLoc(), handleCallbackAttr(), HandleConstructorCall(), clang::SemaObjC::HandleExprPropertyRefExpr(), handleFormatArgAttr(), handleFormatAttr(), HandleFunctionCall(), handleInitPriorityAttr(), clang::SemaM68k::handleInterruptAttr(), clang::SemaMSP430::handleInterruptAttr(), handleIntIntBinOp(), handleLayoutVersion(), handleNonNullAttr(), handleOpenCLUnrollHint(), handleOwnershipAttr(), handlePassObjectSizeAttr(), handleSentinelAttr(), 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(), makeLaunchBoundsArgExpr(), clang::interp::InterpState::maybeDiagnoseDanglingAllocations(), clang::Sema::MaybeEmitAmbiguousAtomicConstraintsDiagnostic(), maybePutParensOnReceiver(), clang::interp::Neg(), objectifyExpr(), OpenCLArithmeticConversions(), clang::Parser::ParseConstraintLogicalAndExpression(), clang::ento::ConditionBRVisitor::patternMatch(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextualImplicitConversion(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::Sema::PerformObjectMemberConversion(), PointerAuthStringDiscriminator(), populateExecutedLinesWithFunctionSignature(), printExprAsWritten(), printIndicesOfElementsToConstructJson(), printPendingInitLoopJson(), 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(), 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::ASTNodeImporter::VisitCXXNewExpr(), clang::ASTNodeImporter::VisitCXXTypeidExpr(), and clang::Sema::WarnOnPendingNoDerefs().

getStmtClass()

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

Definition at line 1380 of file Stmt.h.

References StmtBits.

Referenced by clang::ast_matchers::AST_MATCHER(), checkFormatStringExpr(), CheckICE(), clang::SemaObjC::CheckLiteralKind(), children(), ClassifyInternal(), DiagUninitUse(), FindTypeTagExpr(), getBaseAlignmentAndOffsetFromLValue(), getBaseAlignmentAndOffsetFromPtr(), getBeginLoc(), clang::CXXNamedCastExpr::getCastName(), clang::ento::SValBuilder::getConstantVal(), getEndLoc(), clang::Expr::getExprLoc(), getLoopCondition(), clang::ento::ObjCMethodCall::getMessageKind(), clang::OMPLoopTransformationDirective::getPreInits(), getPrimaryDecl(), clang::threadSafety::getSourceLiteralString(), getSourceRange(), clang::CastExpr::getTrailingFPFeatures(), clang::OMPLoopTransformationDirective::getTransformedStmt(), clang::Expr::HasSideEffects(), ignoreTransparentExprs(), clang::Expr::isConstantInitializer(), IsGlobalLValue(), isInLoopBody(), isLoop(), clang::Expr::isOBJCGCCandidate(), isObjCObjectLiteral(), clang::Expr::isSameComparisonOperand(), clang::Expr::isUnusedResultAWarning(), rebuildPotentialResultsAsNonOdrUsed(), requiresParensToAddCast(), clang::TreeTransform< Derived >::TransformCXXNamedCastExpr(), clang::TreeTransform< Derived >::TransformExpr(), clang::ASTNodeImporter::VisitExplicitCastExpr(), clang::ento::ConditionBRVisitor::VisitTerminator(), and clang::ento::ConditionBRVisitor::VisitTrueTest().

getStmtClassName()

const char * Stmt::getStmtClassName ( ) const

IgnoreContainers() [1/2]

IgnoreContainers() [2/2]

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

operator delete() [1/5]

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

operator delete() [2/5]

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

operator delete() [3/5]

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

operator delete() [4/5]

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

operator delete() [5/5]

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

Definition at line 106 of file Stmt.h.

operator new() [1/4]

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

Definition at line 102 of file Stmt.h.

operator new() [2/4]

operator new() [3/4]

operator new() [4/4]

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

operator=() [1/2]

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

operator=() [2/2]

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

printJson()

printPretty()

Definition at line 2877 of file StmtPrinter.cpp.

References P.

Referenced by clang::Sema::DiagnoseAlwaysNonNullPointer(), DiagTemplateArg(), clang::ento::CallEvent::dump(), dumpPretty(), clang::ento::StringRegion::dumpToStream(), clang::ento::ObjCStringRegion::dumpToStream(), clang::SemaHLSL::emitLogicalOperatorFixIt(), clang::Sema::findFailedBooleanCondition(), clang::TemplateArgument::print(), print_block(), clang::FunctionProtoType::printExceptionSpecification(), printExplicitSpecifier(), printJson(), and clang::APValue::printPretty().

printPrettyControlled()

PrintStats()

void Stmt::PrintStats ( ) static

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 2814 of file StmtProfile.cpp.

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 2808 of file StmtProfile.cpp.

Referenced by actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPAtomicDirective(), clang::Sema::AreConstraintExpressionsEqual(), checkDeducedTemplateArguments(), clang::CheckEquivalentExceptionSpecImpl(), checkPreviousOMPAllocateAttribute(), DiagRecursiveConstraintEval(), getAllocatorKind(), clang::ASTContext::hasSameExpr(), IsOverloadOrOverrideImpl(), clang::ASTContext::isSameConstraintExpr(), clang::ASTContext::isSameDefaultTemplateArgument(), isSameTemplateArg(), clang::Sema::MaybeEmitAmbiguousAtomicConstraintsDiagnostic(), clang::APValue::Profile(), clang::TemplateArgument::Profile(), clang::DependentBitIntType::Profile(), clang::DependentDecltypeType::Profile(), clang::DependentTypeOfExprType::Profile(), clang::DependentVectorType::Profile(), clang::DependentSizedMatrixType::Profile(), clang::DependentSizedExtVectorType::Profile(), clang::DependentSizedArrayType::Profile(), clang::PackIndexingType::Profile(), clang::DependentAddressSpaceType::Profile(), and clang::ConstantArrayType::Profile().

stripLabelLikeStatements() [1/2]

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

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

Referenced by stripLabelLikeStatements().

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

ASTStmtWriter

union { ... } clang::Stmt::@86

ArrayOrMatrixSubscriptExprBits

AttributedStmtBits

BinaryOperatorBits

Definition at line 1251 of file Stmt.h.

Referenced by clang::BinaryOperator::BinaryOperator(), clang::BinaryOperator::getFPFeatures(), clang::BinaryOperator::getFPFeaturesInEffect(), clang::BinaryOperator::getOpcode(), clang::BinaryOperator::getOperatorLoc(), 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().

BreakStmtBits

CallExprBits

CastExprBits

CharacterLiteralBits

CoawaitBits

CompoundStmtBits

ConstantExprBits

ContinueStmtBits

CXXBoolLiteralExprBits

CXXConstructExprBits

Definition at line 1276 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

CXXNewExprBits

CXXNoexceptExprBits

CXXNullPtrLiteralExprBits

CXXOperatorCallExprBits

CXXRewrittenBinaryOperatorBits

CXXScalarValueInitExprBits

CXXThisExprBits

CXXThrowExprBits

CXXUnresolvedConstructExprBits

DeclRefExprBits

Definition at line 1241 of file Stmt.h.

Referenced by clang::DeclRefExpr::DeclRefExpr(), clang::DeclRefExpr::getLocation(), clang::DeclRefExpr::hadMultipleCandidates(), clang::DeclRefExpr::hasQualifier(), clang::DeclRefExpr::hasTemplateKWAndArgsInfo(), clang::DeclRefExpr::isCapturedByCopyInLambdaWithExplicitObjectParameter(), clang::DeclRefExpr::isImmediateEscalating(), clang::DeclRefExpr::isNonOdrUse(), clang::DeclRefExpr::refersToEnclosingVariableOrCapture(), clang::DeclRefExpr::setCapturedByCopyInLambdaWithExplicitObjectParameter(), clang::DeclRefExpr::setHadMultipleCandidates(), clang::DeclRefExpr::setIsImmediateEscalating(), and clang::DeclRefExpr::setLocation().

DependentScopeDeclRefExprBits

DoStmtBits

ExprBits

ExprWithCleanupsBits

FloatingLiteralBits

ForStmtBits

GenericSelectionExprBits

GotoStmtBits

IfStmtBits

InitListExprBits

LabelStmtBits

LambdaExprBits

MemberExprBits

NullStmtBits

ObjCIndirectCopyRestoreExprBits

OpaqueValueExprBits

OverloadExprBits

ParenExprBits

ParenListExprBits

PredefinedExprBits

PseudoObjectExprBits

RequiresExprBits

ReturnStmtBits

SourceLocExprBits

StmtBits

StmtExprBits

StringLiteralBits

SubstNonTypeTemplateParmExprBits

SwitchCaseBits

SwitchStmtBits

TypeTraitExprBits

UnaryExprOrTypeTraitExprBits

UnaryOperatorBits

UnresolvedLookupExprBits

UnresolvedMemberExprBits

WhileStmtBits


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