clang API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends
clang::Stmt Class Reference

#include <Stmt.h>

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

List of all members.

Classes

class  CallExprBitfields
class  CastExprBitfields
class  CharacterLiteralBitfields
class  CompoundStmtBitfields
class  DeclRefExprBitfields
struct  EmptyShell
 A placeholder type used to construct an empty shell of a type, that will be filled in later (e.g., by some de-serialization). More...
class  ExprBitfields
class  ExprWithCleanupsBitfields
class  FloatingLiteralBitfields
class  InitListExprBitfields
class  ObjCIndirectCopyRestoreExprBitfields
class  PseudoObjectExprBitfields
class  StmtBitfields
class  TypeTraitExprBitfields
class  UnaryExprOrTypeTraitExprBitfields

Public Types

enum  StmtClass { NoStmtClass = 0 }
typedef StmtIterator child_iterator
typedef ConstStmtIterator const_child_iterator
typedef StmtRange child_range
typedef ConstStmtRange const_child_range

Public Member Functions

void * operator new (size_t bytes, const ASTContext &C, unsigned alignment=8)
void * operator new (size_t bytes, const ASTContext *C, unsigned alignment=8)
void * operator new (size_t bytes, void *mem) throw ()
void operator delete (void *, const ASTContext &, unsigned) throw ()
void operator delete (void *, const ASTContext *, unsigned) throw ()
void operator delete (void *, size_t) throw ()
void operator delete (void *, void *) throw ()
 Stmt (StmtClass SC)
StmtClass getStmtClass () const
const char * getStmtClassName () const
SourceRange getSourceRange () const LLVM_READONLY
SourceLocation getLocStart () const LLVM_READONLY
SourceLocation getLocEnd () const LLVM_READONLY
void dump () const
 Dumps the specified AST fragment and all subtrees to llvm::errs().
void dump (SourceManager &SM) const
void dump (raw_ostream &OS, SourceManager &SM) const
void dumpColor () const
 dumpColor - same as dump(), but forces color highlighting.
void dumpPretty (const ASTContext &Context) const
void printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0) const
void viewAST () const
StmtIgnoreImplicit ()
StmtIgnoreContainers (bool IgnoreCaptured=false)
 Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true.
const StmtstripLabelLikeStatements () const
 Strip off all label-like statements.
StmtstripLabelLikeStatements ()
child_range children ()
const_child_range children () const
child_iterator child_begin ()
child_iterator child_end ()
const_child_iterator child_begin () const
const_child_iterator child_end () const
void Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical) const
 Produce a unique representation of the given statement.

Static Public Member Functions

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

Protected Types

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

Protected Member Functions

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

Protected Attributes

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

Friends

class ASTStmtReader
class ASTStmtWriter

Detailed Description

Stmt - This represents one statement.

Definition at line 104 of file Stmt.h.


Member Typedef Documentation

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

Definition at line 409 of file Stmt.h.

Definition at line 412 of file Stmt.h.

Definition at line 410 of file Stmt.h.

Definition at line 413 of file Stmt.h.


Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
NumStmtBits 

Definition at line 132 of file Stmt.h.

anonymous enum [protected]
Enumerator:
NumExprBits 

Definition at line 172 of file Stmt.h.

Enumerator:
IEEEhalf 
IEEEsingle 
IEEEdouble 
x87DoubleExtended 
IEEEquad 
PPCDoubleDouble 

Definition at line 181 of file Stmt.h.

Enumerator:
NoStmtClass 

Definition at line 106 of file Stmt.h.


Constructor & Destructor Documentation

clang::Stmt::Stmt ( StmtClass  SC,
EmptyShell   
) [inline, explicit, protected]

Construct an empty statement.

Definition at line 344 of file Stmt.h.

References addStmtClass(), and StmtBits.

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

Definition at line 350 of file Stmt.h.

References addStmtClass(), and StmtBits.


Member Function Documentation

void Stmt::addStmtClass ( const StmtClass  s) [static]

Definition at line 86 of file Stmt.cpp.

References StmtClassNameTable::Counter, and getStmtInfoTableEntry().

Referenced by Stmt().

Definition at line 423 of file Stmt.h.

References children().

Definition at line 424 of file Stmt.h.

References children().

Reimplemented in clang::TypoExpr, clang::AtomicExpr, clang::PseudoObjectExpr, clang::AsTypeExpr, clang::BlockExpr, clang::ExtVectorElementExpr, clang::GenericSelectionExpr, clang::ParenListExpr, clang::ImplicitValueInitExpr, clang::DesignatedInitExpr, clang::InitListExpr, clang::CXXFoldExpr, clang::MaterializeTemporaryExpr, clang::VAArgExpr, clang::FunctionParmPackExpr, clang::GNUNullExpr, clang::SubstNonTypeTemplateParmPackExpr, clang::ChooseExpr, clang::SubstNonTypeTemplateParmExpr, clang::ConvertVectorExpr, clang::SizeOfPackExpr, clang::ShuffleVectorExpr, clang::PackExpansionExpr, clang::StmtExpr, clang::AddrLabelExpr, clang::CXXNoexceptExpr, clang::BinaryConditionalOperator, clang::UnresolvedMemberExpr, clang::ConditionalOperator, clang::CXXDependentScopeMemberExpr, clang::BinaryOperator, clang::CXXUnresolvedConstructExpr, clang::ExprWithCleanups, clang::CastExpr, clang::DependentScopeDeclRefExpr, clang::CompoundLiteralExpr, clang::MemberExpr, clang::UnresolvedLookupExpr, clang::CallExpr, clang::ExpressionTraitExpr, clang::ArrayTypeTraitExpr, clang::CapturedStmt, clang::TypeTraitExpr, clang::ArraySubscriptExpr, clang::UnaryExprOrTypeTraitExpr, clang::CXXPseudoDestructorExpr, clang::SEHLeaveStmt, clang::OffsetOfExpr, clang::SEHTryStmt, clang::SEHFinallyStmt, clang::CXXDeleteExpr, clang::SEHExceptStmt, clang::MSAsmStmt, clang::CXXNewExpr, clang::UnaryOperator, clang::ParenExpr, clang::CXXScalarValueInitExpr, clang::StringLiteral, clang::LambdaExpr, clang::AsmStmt, clang::ObjCIndirectCopyRestoreExpr, clang::ObjCIsaExpr, clang::ImaginaryLiteral, clang::FloatingLiteral, clang::ReturnStmt, clang::ObjCMessageExpr, clang::CharacterLiteral, clang::BreakStmt, clang::ContinueStmt, clang::IntegerLiteral, clang::IndirectGotoStmt, clang::GotoStmt, clang::CXXConstructExpr, clang::PredefinedExpr, clang::ForStmt, clang::DeclRefExpr, clang::DoStmt, clang::WhileStmt, clang::CXXBindTemporaryExpr, clang::SwitchStmt, clang::CXXDefaultInitExpr, clang::CXXDefaultArgExpr, clang::IfStmt, clang::AttributedStmt, clang::OpaqueValueExpr, clang::ObjCSubscriptRefExpr, clang::CXXThrowExpr, clang::LabelStmt, clang::CXXThisExpr, clang::DefaultStmt, clang::CXXUuidofExpr, clang::CaseStmt, clang::ObjCPropertyRefExpr, clang::MSPropertyRefExpr, clang::CompoundStmt, clang::CXXTypeidExpr, clang::NullStmt, clang::ObjCIvarRefExpr, clang::CXXStdInitializerListExpr, clang::DeclStmt, clang::CXXNullPtrLiteralExpr, clang::ObjCProtocolExpr, clang::CXXBoolLiteralExpr, clang::ObjCSelectorExpr, clang::ObjCEncodeExpr, clang::ObjCAutoreleasePoolStmt, clang::ObjCAtThrowStmt, clang::ObjCDictionaryLiteral, clang::ObjCAtSynchronizedStmt, clang::MSDependentExistsStmt, clang::ObjCAtTryStmt, clang::CXXForRangeStmt, clang::ObjCArrayLiteral, clang::OMPExecutableDirective, clang::ObjCAtFinallyStmt, clang::ObjCBoxedExpr, clang::ObjCAtCatchStmt, clang::CXXTryStmt, clang::ObjCBoolLiteralExpr, clang::ObjCForCollectionStmt, clang::CXXCatchStmt, and clang::ObjCStringLiteral.

Definition at line 201 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnFinishFunctionBody(), BuildParentMap(), clang::canSubExprsThrow(), CheckConstexprFunctionStmt(), CheckNakedParmReference(), child_begin(), child_end(), children(), clang::CodeGen::CodeGenFunction::containsBreak(), clang::CodeGen::CodeGenFunction::ContainsLabel(), clang::ento::containsStmt(), LogicalErrorHandler::HasMacroID(), clang::Expr::HasSideEffects(), isAccessedBy(), isCapturedBy(), SearchForReturnInStmt(), and clang::EvaluatedExprVisitor< ImplClass >::VisitStmt().

Reimplemented in clang::CompoundStmt.

Definition at line 416 of file Stmt.h.

References children().

LLVM_DUMP_METHOD void Stmt::dump ( ) const

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

Definition at line 2254 of file ASTDumper.cpp.

References P.

Referenced by clang::ento::PathDiagnosticLocation::dump(), and clang::threadSafety::LocalVariableMap::dump().

LLVM_DUMP_METHOD void Stmt::dump ( SourceManager SM) const

Definition at line 2245 of file ASTDumper.cpp.

References dump().

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

Definition at line 2249 of file ASTDumper.cpp.

References P.

LLVM_DUMP_METHOD void Stmt::dumpColor ( ) const

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

Definition at line 2259 of file ASTDumper.cpp.

References P.

void Stmt::dumpPretty ( const ASTContext Context) const

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

Definition at line 2200 of file StmtPrinter.cpp.

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

void Stmt::EnableStatistics ( ) [static]

Definition at line 91 of file Stmt.cpp.

Referenced by clang::ParseAST().

Reimplemented in clang::TypoExpr, clang::AtomicExpr, clang::PseudoObjectExpr, clang::AsTypeExpr, clang::BlockExpr, clang::ExtVectorElementExpr, clang::GenericSelectionExpr, clang::ParenListExpr, clang::ImplicitValueInitExpr, clang::DesignatedInitExpr, clang::InitListExpr, clang::CXXFoldExpr, clang::MaterializeTemporaryExpr, clang::VAArgExpr, clang::FunctionParmPackExpr, clang::GNUNullExpr, clang::SubstNonTypeTemplateParmPackExpr, clang::ChooseExpr, clang::SubstNonTypeTemplateParmExpr, clang::ConvertVectorExpr, clang::SizeOfPackExpr, clang::ShuffleVectorExpr, clang::PackExpansionExpr, clang::StmtExpr, clang::AddrLabelExpr, clang::CXXNoexceptExpr, clang::BinaryConditionalOperator, clang::UnresolvedMemberExpr, clang::ConditionalOperator, clang::CXXDependentScopeMemberExpr, clang::BinaryOperator, clang::CXXUnresolvedConstructExpr, clang::CStyleCastExpr, clang::ExprWithCleanups, clang::ImplicitCastExpr, clang::DependentScopeDeclRefExpr, clang::CompoundLiteralExpr, clang::UnresolvedLookupExpr, clang::MemberExpr, clang::CallExpr, clang::ExpressionTraitExpr, clang::ArrayTypeTraitExpr, clang::CapturedStmt, clang::TypeTraitExpr, clang::ArraySubscriptExpr, clang::UnaryExprOrTypeTraitExpr, clang::CXXPseudoDestructorExpr, clang::SEHLeaveStmt, clang::OffsetOfExpr, clang::SEHTryStmt, clang::SEHFinallyStmt, clang::CXXDeleteExpr, clang::SEHExceptStmt, clang::MSAsmStmt, clang::CXXNewExpr, clang::UnaryOperator, clang::GCCAsmStmt, clang::ParenExpr, clang::CXXScalarValueInitExpr, clang::StringLiteral, clang::LambdaExpr, clang::ObjCBridgedCastExpr, clang::ObjCIndirectCopyRestoreExpr, clang::ImaginaryLiteral, clang::ObjCIsaExpr, clang::AsmStmt, clang::FloatingLiteral, clang::ReturnStmt, clang::ObjCMessageExpr, clang::CharacterLiteral, clang::BreakStmt, clang::CXXTemporaryObjectExpr, clang::ContinueStmt, clang::IntegerLiteral, clang::IndirectGotoStmt, clang::CXXFunctionalCastExpr, clang::GotoStmt, clang::CXXConstructExpr, clang::PredefinedExpr, clang::ForStmt, clang::DoStmt, clang::WhileStmt, clang::CXXBindTemporaryExpr, clang::SwitchStmt, clang::DeclRefExpr, clang::CXXDefaultInitExpr, clang::CXXDefaultArgExpr, clang::IfStmt, clang::AttributedStmt, clang::OpaqueValueExpr, clang::CXXThrowExpr, clang::ObjCSubscriptRefExpr, clang::LabelStmt, clang::CXXThisExpr, clang::DefaultStmt, clang::CXXUuidofExpr, clang::CaseStmt, clang::ObjCPropertyRefExpr, clang::SwitchCase, clang::MSPropertyRefExpr, clang::CompoundStmt, clang::CXXTypeidExpr, clang::NullStmt, clang::ObjCIvarRefExpr, clang::CXXStdInitializerListExpr, clang::DeclStmt, clang::CXXNullPtrLiteralExpr, clang::ObjCProtocolExpr, clang::CXXBoolLiteralExpr, clang::ObjCSelectorExpr, clang::UserDefinedLiteral, clang::ObjCEncodeExpr, clang::ObjCAutoreleasePoolStmt, clang::ObjCAtThrowStmt, clang::ObjCDictionaryLiteral, clang::ObjCAtSynchronizedStmt, clang::MSDependentExistsStmt, clang::ObjCAtTryStmt, clang::CXXNamedCastExpr, clang::CXXForRangeStmt, clang::ObjCArrayLiteral, clang::OMPExecutableDirective, clang::ObjCAtFinallyStmt, clang::ObjCBoxedExpr, clang::ObjCAtCatchStmt, clang::CXXOperatorCallExpr, clang::CXXTryStmt, clang::ObjCBoolLiteralExpr, clang::ObjCForCollectionStmt, clang::ObjCStringLiteral, and clang::CXXCatchStmt.

Definition at line 263 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

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

Reimplemented in clang::TypoExpr, clang::AtomicExpr, clang::PseudoObjectExpr, clang::AsTypeExpr, clang::BlockExpr, clang::ExtVectorElementExpr, clang::GenericSelectionExpr, clang::ParenListExpr, clang::ImplicitValueInitExpr, clang::DesignatedInitExpr, clang::InitListExpr, clang::CXXFoldExpr, clang::MaterializeTemporaryExpr, clang::VAArgExpr, clang::FunctionParmPackExpr, clang::GNUNullExpr, clang::SubstNonTypeTemplateParmPackExpr, clang::ChooseExpr, clang::SubstNonTypeTemplateParmExpr, clang::ConvertVectorExpr, clang::SizeOfPackExpr, clang::ShuffleVectorExpr, clang::PackExpansionExpr, clang::StmtExpr, clang::AddrLabelExpr, clang::CXXNoexceptExpr, clang::BinaryConditionalOperator, clang::UnresolvedMemberExpr, clang::ConditionalOperator, clang::CXXDependentScopeMemberExpr, clang::BinaryOperator, clang::CXXUnresolvedConstructExpr, clang::CStyleCastExpr, clang::ExprWithCleanups, clang::ImplicitCastExpr, clang::DependentScopeDeclRefExpr, clang::CompoundLiteralExpr, clang::UnresolvedLookupExpr, clang::MemberExpr, clang::CallExpr, clang::ExpressionTraitExpr, clang::ArrayTypeTraitExpr, clang::CapturedStmt, clang::TypeTraitExpr, clang::ArraySubscriptExpr, clang::UnaryExprOrTypeTraitExpr, clang::CXXPseudoDestructorExpr, clang::SEHLeaveStmt, clang::OffsetOfExpr, clang::SEHTryStmt, clang::SEHFinallyStmt, clang::CXXDeleteExpr, clang::SEHExceptStmt, clang::MSAsmStmt, clang::CXXNewExpr, clang::UnaryOperator, clang::GCCAsmStmt, clang::ParenExpr, clang::CXXScalarValueInitExpr, clang::StringLiteral, clang::LambdaExpr, clang::ObjCBridgedCastExpr, clang::ObjCIndirectCopyRestoreExpr, clang::ImaginaryLiteral, clang::AsmStmt, clang::ObjCIsaExpr, clang::FloatingLiteral, clang::ReturnStmt, clang::ObjCMessageExpr, clang::CharacterLiteral, clang::BreakStmt, clang::CXXTemporaryObjectExpr, clang::ContinueStmt, clang::IntegerLiteral, clang::IndirectGotoStmt, clang::CXXFunctionalCastExpr, clang::GotoStmt, clang::CXXConstructExpr, clang::PredefinedExpr, clang::ForStmt, clang::DoStmt, clang::WhileStmt, clang::CXXBindTemporaryExpr, clang::SwitchStmt, clang::DeclRefExpr, clang::CXXDefaultInitExpr, clang::CXXDefaultArgExpr, clang::IfStmt, clang::AttributedStmt, clang::OpaqueValueExpr, clang::CXXThrowExpr, clang::ObjCSubscriptRefExpr, clang::LabelStmt, clang::CXXThisExpr, clang::DefaultStmt, clang::CXXUuidofExpr, clang::CaseStmt, clang::ObjCPropertyRefExpr, clang::SwitchCase, clang::MSPropertyRefExpr, clang::CompoundStmt, clang::CXXTypeidExpr, clang::NullStmt, clang::ObjCIvarRefExpr, clang::CXXStdInitializerListExpr, clang::DeclStmt, clang::CXXNullPtrLiteralExpr, clang::ObjCProtocolExpr, clang::CXXBoolLiteralExpr, clang::ObjCSelectorExpr, clang::UserDefinedLiteral, clang::ObjCEncodeExpr, clang::ObjCAutoreleasePoolStmt, clang::ObjCAtThrowStmt, clang::ObjCDictionaryLiteral, clang::ObjCAtSynchronizedStmt, clang::MSDependentExistsStmt, clang::ObjCAtTryStmt, clang::CXXNamedCastExpr, clang::CXXForRangeStmt, clang::ObjCArrayLiteral, clang::OMPExecutableDirective, clang::ObjCAtFinallyStmt, clang::ObjCBoxedExpr, clang::ObjCAtCatchStmt, clang::CXXOperatorCallExpr, clang::CXXTryStmt, clang::ObjCBoolLiteralExpr, clang::ObjCForCollectionStmt, clang::ObjCStringLiteral, and clang::CXXCatchStmt.

Definition at line 250 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

Referenced by clang::Sema::ActOnCallExpr(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXForRangeStmt(), clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::ActOnFinishSwitchStmt(), clang::Sema::ActOnGCCAsmStmt(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::ActOnOpenMPLinearClause(), clang::Sema::ActOnOpenMPNumThreadsClause(), clang::Sema::ActOnOpenMPParallelSectionsDirective(), clang::Sema::ActOnOpenMPScheduleClause(), clang::Sema::ActOnOpenMPSectionsDirective(), clang::Sema::AddConversionCandidate(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildArrayType(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildCXXDefaultArgExpr(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXNew(), clang::Sema::BuildForRangeBeginEndCall(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildOverloadedCallExpr(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildVAArgExpr(), clang::canCalleeThrow(), clang::Sema::CanPerformCopyInitialization(), CastForMoving(), checkArgCount(), CheckArrayDesignatorExpr(), CheckAsmLValue(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckCompareOperands(), checkCondition(), checkConditionalConvertScalarsToVectors(), checkConditionalVoidType(), clang::Sema::CheckConstexprFunctionBody(), CheckConstexprFunctionStmt(), clang::Sema::CheckConvertedConstantExpression(), CheckEvalInICE(), CheckFallThroughForBody(), CheckFoldOperand(), CheckICE(), clang::Sema::CheckImplementationIvars(), CheckNonTypeTemplatePartialSpecializationArgs(), CheckObjCBridgeCFCast(), CheckObjCBridgeNSCast(), clang::Sema::CheckObjCBridgeRelatedCast(), clang::Sema::CheckObjCBridgeRelatedConversions(), CheckObjCCollectionLiteralElement(), CheckOpenMPIterationSpace(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::CheckPointerToMemberOperands(), checkRecursiveFunction(), CheckReturnStackAddr(), clang::Sema::CheckSingleAssignmentConstraints(), CheckStringInit(), clang::Sema::checkStringLiteralArgumentAttr(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentIsCompatibleWithParameter(), CheckTemplateArgumentPointerToMember(), clang::Sema::checkVariadicArgument(), clang::ento::containsMacro(), ConvertForConditional(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::Sema::CreateBuiltinBinOp(), clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::Sema::CreateGenericSelectionExpr(), CreateIfFixit(), clang::Sema::DeduceAutoType(), clang::Sema::DefaultVariadicArgumentPromotion(), clang::Sema::DiagnoseAlwaysNonNullPointer(), DiagnoseARCUseOfWeakReceiver(), clang::Sema::DiagnoseAssignmentAsCondition(), DiagnoseBitwisePrecedence(), DiagnoseConditionalPrecedence(), clang::Sema::DiagnoseDtorReference(), clang::Sema::DiagnoseEmptyLoopBody(), diagnoseLogicalNotOnLHSofComparison(), clang::Sema::DiagnoseMultipleUserDefinedConversion(), DiagnoseNarrowingInInitList(), diagnoseNoViableConversion(), diagnoseObjCLiteralComparison(), diagnoseRepeatedUseOfWeak(), DiagnoseShiftCompare(), diagnoseStringPlusChar(), diagnoseStringPlusInt(), DiagnoseSwitchLabelsFallthrough(), clang::Sema::DiagnoseUnexpandedParameterPack(), DiagUninitUse(), clang::CodeGen::CodeGenPGO::emitEmptyCounterMapping(), clang::CodeGen::CodeGenFunction::EmitStopPoint(), clang::CodeGen::CodeGenModule::ErrorUnsupported(), EvaluateStmt(), FinishOverloadedCallExpr(), clang::Sema::GatherArgumentsForCall(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtFunction(), getInitializationLoc(), clang::UserDefinedLiteral::getLocStart(), clang::CXXStdInitializerListExpr::getLocStart(), clang::ObjCIvarRefExpr::getLocStart(), clang::MSPropertyRefExpr::getLocStart(), clang::ObjCPropertyRefExpr::getLocStart(), clang::ObjCSubscriptRefExpr::getLocStart(), clang::OpaqueValueExpr::getLocStart(), clang::CXXBindTemporaryExpr::getLocStart(), clang::ObjCIsaExpr::getLocStart(), clang::ImaginaryLiteral::getLocStart(), clang::ObjCIndirectCopyRestoreExpr::getLocStart(), clang::UnaryOperator::getLocStart(), clang::ArraySubscriptExpr::getLocStart(), clang::CapturedStmt::getLocStart(), clang::CallExpr::getLocStart(), clang::CompoundLiteralExpr::getLocStart(), clang::ImplicitCastExpr::getLocStart(), clang::ExprWithCleanups::getLocStart(), clang::BinaryOperator::getLocStart(), clang::CXXDependentScopeMemberExpr::getLocStart(), clang::ConditionalOperator::getLocStart(), clang::UnresolvedMemberExpr::getLocStart(), clang::BinaryConditionalOperator::getLocStart(), clang::PackExpansionExpr::getLocStart(), clang::MaterializeTemporaryExpr::getLocStart(), clang::ExtVectorElementExpr::getLocStart(), clang::PseudoObjectExpr::getLocStart(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), GetUnreachableLoc(), getValidSourceLocation(), handleFallThroughAttr(), handleLoopHintAttr(), clang::Sema::ImpCastExprToType(), clang::InitializationSequence::InitializeFrom(), clang::Sema::InstantiateInClassInitializer(), clang::AnalysisDeclContext::isBodyAutosynthesizedFromModelFile(), isExpandedFromConfigurationMacro(), IsInitializerListConstructorConversion(), clang::Sema::IsIntegralPromotion(), clang::Sema::IsMemberPointerConversion(), isNullPointerValueTemplateArgument(), clang::Sema::IsPointerConversion(), clang::Expr::isUnusedResultAWarning(), IsUserDefinedConversion(), isValidDeadStmt(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), clang::InitializationSequence::Perform(), clang::Sema::PerformContextuallyConvertToBool(), clang::Sema::PerformCopyInitialization(), clang::Sema::PerformImplicitConversion(), clang::Sema::performLambdaInitCaptureInitialization(), clang::Sema::PerformObjectArgumentInitialization(), clang::ento::ExprEngine::processBranch(), clang::ento::ExprEngine::ProcessStmt(), ProcessStmtAttribute(), clang::TreeTransform< Derived >::RebuildCXXOperatorCallExpr(), removePunyEdges(), clang::Sema::ResolveAndFixSingleFunctionTemplateSpecialization(), rewriteToArrayLiteral(), rewriteToDictionaryLiteral(), SearchForReturnInStmt(), SemaBuiltinAnnotation(), clang::Sema::SemaBuiltinShuffleVector(), clang::TreeTransform< Derived >::TransformExceptionSpec(), TryClassUnification(), TryCopyInitialization(), TryLValueToRValueCast(), TryReferenceInitializationCore(), TryReferenceListInitialization(), TryRefInitWithConversionFunction(), TryTypoCorrectionForCall(), TryUserDefinedConversion(), clang::Sema::VerifyIntegerConstantExpression(), clang::ento::ExprEngine::Visit(), clang::ASTNodeImporter::VisitExpr(), and clang::ASTNodeImporter::VisitStmt().

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.

Reimplemented in clang::CXXNoexceptExpr, clang::CapturedStmt, clang::CXXNewExpr, clang::CXXUuidofExpr, clang::MSPropertyRefExpr, clang::CXXTypeidExpr, clang::CXXStdInitializerListExpr, clang::ObjCDictionaryLiteral, clang::ObjCArrayLiteral, clang::ObjCBoxedExpr, and clang::CXXOperatorCallExpr.

Definition at line 238 of file Stmt.cpp.

References getStmtClass(), and NoStmtClass.

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

Definition at line 355 of file Stmt.h.

References StmtBits.

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

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

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

Definition at line 109 of file Stmt.cpp.

References S.

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

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

Reimplemented in clang::Expr.

Definition at line 95 of file Stmt.cpp.

void clang::Stmt::operator delete ( void *  data) throw () [inline, protected]

Definition at line 122 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
const ASTContext ,
unsigned   
) throw () [inline]

Definition at line 327 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
const ASTContext ,
unsigned   
) throw () [inline]

Definition at line 328 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
size_t   
) throw () [inline]

Definition at line 329 of file Stmt.h.

void clang::Stmt::operator delete ( void *  ,
void *   
) throw () [inline]

Definition at line 330 of file Stmt.h.

void* clang::Stmt::operator new ( size_t  bytes) throw () [inline, protected]

Definition at line 119 of file Stmt.h.

Referenced by operator new().

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

Definition at line 52 of file Stmt.cpp.

References operator new().

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

Definition at line 318 of file Stmt.h.

References operator new().

void* clang::Stmt::operator new ( size_t  bytes,
void *  mem 
) throw () [inline]

Definition at line 323 of file Stmt.h.

void Stmt::printPretty ( raw_ostream &  OS,
PrinterHelper Helper,
const PrintingPolicy Policy,
unsigned  Indentation = 0 
) const
void Stmt::PrintStats ( ) [static]
void Stmt::Profile ( llvm::FoldingSetNodeID &  ID,
const ASTContext Context,
bool  Canonical 
) const

Produce a unique representation of the given statement.

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

Definition at line 1457 of file StmtProfile.cpp.

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

Strip off all label-like statements.

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

Definition at line 131 of file Stmt.cpp.

References S.

Referenced by stripLabelLikeStatements().

Definition at line 401 of file Stmt.h.

References stripLabelLikeStatements().

void Stmt::viewAST ( ) const

viewAST - Visualize an AST rooted at this Stmt* using GraphViz. Only works on systems with GraphViz (Mac OS X) or dot+gv installed.

Definition at line 21 of file StmtViz.cpp.


Friends And Related Function Documentation

friend class ASTStmtReader [friend]

Reimplemented in clang::AtomicExpr, clang::PseudoObjectExpr, clang::AsTypeExpr, clang::GenericSelectionExpr, clang::ParenListExpr, clang::InitListExpr, clang::CXXFoldExpr, clang::MaterializeTemporaryExpr, clang::FunctionParmPackExpr, clang::SubstNonTypeTemplateParmPackExpr, clang::SubstNonTypeTemplateParmExpr, clang::ConvertVectorExpr, clang::SizeOfPackExpr, clang::PackExpansionExpr, clang::CXXNoexceptExpr, clang::BinaryConditionalOperator, clang::UnresolvedMemberExpr, clang::ConditionalOperator, clang::CXXDependentScopeMemberExpr, clang::AbstractConditionalOperator, clang::CXXUnresolvedConstructExpr, clang::ExprWithCleanups, clang::DependentScopeDeclRefExpr, clang::UnresolvedLookupExpr, clang::OverloadExpr, clang::ExpressionTraitExpr, clang::ArrayTypeTraitExpr, clang::CapturedStmt, clang::TypeTraitExpr, clang::CXXPseudoDestructorExpr, clang::SEHTryStmt, clang::SEHFinallyStmt, clang::CXXDeleteExpr, clang::SEHExceptStmt, clang::MSAsmStmt, clang::CXXNewExpr, clang::CXXScalarValueInitExpr, clang::OMPTeamsDirective, clang::LambdaExpr, clang::GCCAsmStmt, clang::ObjCBridgedCastExpr, clang::OMPTargetDirective, clang::ObjCIndirectCopyRestoreExpr, clang::StringLiteral, clang::OMPAtomicDirective, clang::AsmStmt, clang::ObjCMessageExpr, clang::OMPOrderedDirective, clang::OMPFlushDirective, clang::CXXTemporaryObjectExpr, clang::OMPTaskwaitDirective, clang::OMPBarrierDirective, clang::CXXConstructExpr, clang::PredefinedExpr, clang::OMPTaskyieldDirective, clang::DeclRefExpr, clang::OMPTaskDirective, clang::OMPParallelSectionsDirective, clang::OMPParallelForSimdDirective, clang::CXXDefaultInitExpr, clang::CXXDefaultArgExpr, clang::OMPParallelForDirective, clang::OMPCriticalDirective, clang::ObjCSubscriptRefExpr, clang::AttributedStmt, clang::OpaqueValueExpr, clang::CXXThrowExpr, clang::OMPMasterDirective, clang::OMPSingleDirective, clang::ObjCPropertyRefExpr, clang::OMPSectionDirective, clang::MSPropertyRefExpr, clang::OMPSectionsDirective, clang::OMPForSimdDirective, clang::CompoundStmt, clang::NullStmt, clang::CXXStdInitializerListExpr, clang::OMPForDirective, clang::ObjCProtocolExpr, clang::UserDefinedLiteral, clang::OMPSimdDirective, clang::ObjCDictionaryLiteral, clang::OMPLoopDirective, clang::MSDependentExistsStmt, clang::CXXNamedCastExpr, clang::ObjCArrayLiteral, clang::ObjCBoxedExpr, clang::CXXTryStmt, clang::CXXOperatorCallExpr, clang::CXXCatchStmt, and clang::OMPExecutableDirective.

Definition at line 309 of file Stmt.h.

friend class ASTStmtWriter [friend]

Member Data Documentation

union { ... } [protected]

Definition at line 291 of file Stmt.h.

Definition at line 301 of file Stmt.h.

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

Definition at line 302 of file Stmt.h.

Referenced by clang::ExprWithCleanups::getNumObjects().

Definition at line 304 of file Stmt.h.

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

Definition at line 293 of file Stmt.h.

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


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