clang: clang::Stmt Class Reference (original) (raw)
Stmt - This represents one statement. More...
#include "[clang/AST/Stmt.h](Stmt%5F8h%5Fsource.html)"
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. | |
◆ 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:
- include/clang/AST/Stmt.h
- lib/AST/ASTDumper.cpp
- lib/AST/Stmt.cpp
- lib/AST/StmtPrinter.cpp
- lib/AST/StmtProfile.cpp
- lib/AST/StmtViz.cpp