|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/include/clang/AST/Stmt.h 1213 class DeclStmt : public Stmt {
1285 class NullStmt : public Stmt {
1320 class CompoundStmt final : public Stmt,
1443 class SwitchCase : public Stmt {
1701 class ValueStmt : public Stmt {
1822 class IfStmt final
2027 class SwitchStmt final : public Stmt,
2210 class WhileStmt final : public Stmt,
2338 class DoStmt : public Stmt {
2394 class ForStmt : public Stmt {
2465 class GotoStmt : public Stmt {
2504 class IndirectGotoStmt : public Stmt {
2553 class ContinueStmt : public Stmt {
2583 class BreakStmt : public Stmt {
2620 class ReturnStmt final
2703 class AsmStmt : public Stmt {
3189 class SEHExceptStmt : public Stmt {
3233 class SEHFinallyStmt : public Stmt {
3268 class SEHTryStmt : public Stmt {
3321 class SEHLeaveStmt : public Stmt {
3360 class CapturedStmt : public Stmt {
tools/clang/include/clang/AST/StmtCXX.h 28 class CXXCatchStmt : public Stmt {
68 class CXXTryStmt final : public Stmt,
134 class CXXForRangeStmt : public Stmt {
252 class MSDependentExistsStmt : public Stmt {
317 class CoroutineBodyStmt final
456 class CoreturnStmt : public Stmt {
tools/clang/include/clang/AST/StmtObjC.h 23 class ObjCForCollectionStmt : public Stmt {
77 class ObjCAtCatchStmt : public Stmt {
127 class ObjCAtFinallyStmt : public Stmt {
165 class ObjCAtTryStmt : public Stmt {
277 class ObjCAtSynchronizedStmt : public Stmt {
332 class ObjCAtThrowStmt : public Stmt {
368 class ObjCAutoreleasePoolStmt : public Stmt {
tools/clang/include/clang/AST/StmtOpenMP.h 33 class OMPExecutableDirective : public Stmt {
Declarations
tools/clang/include/clang/AST/ASTContext.h 117 class Stmt;
tools/clang/include/clang/AST/ASTFwd.h 22 class Stmt;
tools/clang/include/clang/AST/ASTImporter.h 45 class Stmt;
tools/clang/include/clang/AST/Decl.h 69 class Stmt;
tools/clang/include/clang/AST/DeclBase.h 66 class Stmt;
tools/clang/include/clang/AST/DeclObjC.h 57 class Stmt;
tools/clang/include/clang/AST/ExternalASTSource.h 52 class Stmt;
tools/clang/include/clang/AST/ODRHash.h 31 class Stmt;
tools/clang/include/clang/AST/ParentMap.h 17 class Stmt;
tools/clang/include/clang/AST/PrettyPrinter.h 23 class Stmt;
tools/clang/include/clang/AST/StmtIterator.h 24 class Stmt;
tools/clang/include/clang/AST/Type.h 116 class Stmt;
tools/clang/include/clang/Analysis/Analyses/Consumed.h 36 class Stmt;
tools/clang/include/clang/Analysis/Analyses/LiveVariables.h 24 class Stmt;
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h 55 class Stmt;
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h 70 class Stmt;
tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h 26 class Stmt;
tools/clang/include/clang/Analysis/AnalysisDeclContext.h 43 class Stmt;
tools/clang/include/clang/Analysis/BodyFarm.h 28 class Stmt;
tools/clang/include/clang/Analysis/CFGStmtMap.h 22 class Stmt;
tools/clang/include/clang/Analysis/CallGraph.h 34 class Stmt;
tools/clang/include/clang/Analysis/CloneDetection.h 23 class Stmt;
tools/clang/include/clang/Analysis/CodeInjector.h 21 class Stmt;
tools/clang/include/clang/Sema/Ownership.h 37 class Stmt;
tools/clang/include/clang/Sema/ScopeInfo.h 57 class Stmt;
tools/clang/include/clang/Sema/Sema.h 173 class Stmt;
tools/clang/include/clang/Serialization/ASTReader.h 111 class Stmt;
tools/clang/include/clang/Serialization/ASTWriter.h 90 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 52 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h 32 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h 33 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h 24 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h 50 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h 65 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h 44 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 24 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h 33 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h 18 class Stmt;
tools/clang/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h 23 class Stmt;
tools/clang/include/clang/Tooling/Refactoring/Extract/SourceExtraction.h 19 class Stmt;
tools/clang/lib/ARCMigrate/Internals.h 20 class Stmt;
tools/clang/lib/ARCMigrate/Transforms.h 19 class Stmt;
tools/clang/lib/AST/Interp/Context.h 27 class Stmt;
tools/clang/lib/AST/Interp/Program.h 32 class Stmt;
tools/clang/lib/CodeGen/CodeGenModule.h 65 class Stmt;
tools/clang/lib/CodeGen/CoverageMappingGen.h 30 class Stmt;
tools/clang/lib/CodeGen/VarBypassDetector.h 25 class Stmt;
tools/clang/lib/Index/IndexingContext.h 30 class Stmt;
tools/clang/tools/libclang/CXCursor.h 39 class Stmt;
tools/lldb/include/lldb/Core/ClangForward.h 103 class Stmt;
References
include/llvm/ADT/ArrayRef.h 108 const ArrayRef<U *> &A,
110 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
118 const SmallVectorTemplateCommon<U *, DummyT> &Vec,
120 std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
include/llvm/ADT/DenseMapInfo.h 39 static inline T* getEmptyKey() {
41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
45 static inline T* getTombstoneKey() {
47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
51 static unsigned getHashValue(const T *PtrVal) {
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/STLExtras.h 75 typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Allocator.h 342 return Out / alignof(T);
include/llvm/Support/Casting.h 34 using SimpleType = From; // The real type this represents...
37 static SimpleType &getSimplifiedValue(From &Val) { return Val; }
41 using NonConstSimpleType = typename simplify_type<From>::SimpleType;
47 static RetType getSimplifiedValue(const From& Val) {
57 static inline bool doit(const From &Val) {
66 static inline bool doit(const From &) { return true; }
76 static inline bool doit(const From &Val) {
77 return isa_impl<To, From>::doit(Val);
104 static inline bool doit(const From *Val) {
106 return isa_impl<To, From>::doit(*Val);
106 return isa_impl<To, From>::doit(*Val);
122 return isa_impl_wrap<To, SimpleFrom,
132 return isa_impl_cl<To,FromTy>::doit(Val);
141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
142 return isa_impl_wrap<X, const Y,
142 return isa_impl_wrap<X, const Y,
143 typename simplify_type<const Y>::SimpleType>::doit(Val);
172 using ret_type = To *; // Pointer arg case, return Ty*
176 using ret_type = const To *; // Constant pointer arg case, return const Ty*
198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
210 To, From, typename simplify_type<From>::SimpleType>::ret_type;
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
236 std::is_same<X, typename simplify_type<X>::SimpleType>::value;
236 std::is_same<X, typename simplify_type<X>::SimpleType>::value;
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(Val);
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
306 cast_or_null(Y *Val) {
309 return cast<X>(Val);
337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
367 dyn_cast_or_null(Y *Val) {
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Support/type_traits.h 55 struct add_const_past_pointer { using type = const T; };
tools/clang/include/clang/AST/ASTContext.h 664 template <typename NodeT> DynTypedNodeList getParents(const NodeT &Node) {
tools/clang/include/clang/AST/ASTImporter.h 268 llvm::DenseMap<Stmt *, Stmt *> ImportedStmts;
268 llvm::DenseMap<Stmt *, Stmt *> ImportedStmts;
420 llvm::Expected<Stmt *> Import(Stmt *FromS);
420 llvm::Expected<Stmt *> Import(Stmt *FromS);
tools/clang/include/clang/AST/ASTNodeTraverser.h 100 void Visit(const Stmt *S, StringRef Label = {}) {
115 for (const Stmt *SubStmt : S->children())
178 for (const auto *S : C->children())
212 else if (const auto *S = N.get<Stmt>())
212 else if (const auto *S = N.get<Stmt>())
tools/clang/include/clang/AST/ASTTypeTraits.h 65 return ASTNodeKind(KindToKindId<T>::Id);
71 static ASTNodeKind getFromNode(const Stmt &S);
234 static DynTypedNode create(const T &Node) {
235 return BaseConverter<T>::create(Node);
251 const T *get() const {
252 return BaseConverter<T>::get(NodeKind, Storage.buffer);
259 const T &getUnchecked() const {
260 return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
394 static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
395 if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
399 static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
401 return *cast<T>(static_cast<const BaseT *>(
404 static DynTypedNode create(const BaseT &Node) {
474 : public DynCastPtrConverter<T, Stmt> {};
474 : public DynCastPtrConverter<T, Stmt> {};
tools/clang/include/clang/AST/Decl.h 819 Stmt *Value;
867 using InitType = llvm::PointerUnion<Stmt *, EvaluatedStmt *>;
1241 Stmt **getInitAddress();
2022 Stmt *getBody(const FunctionDecl *&Definition) const;
2024 Stmt *getBody() const override {
2044 void setBody(Stmt *B);
2863 Stmt *Init; // an integer constant expression
4015 Stmt *Body = nullptr;
4037 Stmt *getBody() const override { return (Stmt*) Body; }
4164 llvm::PointerIntPair<Stmt *, 1, bool> BodyAndNothrow;
4186 Stmt *getBody() const override;
4187 void setBody(Stmt *B);
tools/clang/include/clang/AST/DeclBase.h 986 virtual Stmt* getBody() const { return nullptr; }
tools/clang/include/clang/AST/DeclCXX.h 2154 Stmt *Init;
2229 return Init->getStmtClass() == Stmt::CXXDefaultInitExprClass;
tools/clang/include/clang/AST/DeclObjC.h 506 Stmt *getBody() const override;
511 void setBody(Stmt *B) { Body = B; }
tools/clang/include/clang/AST/EvaluatedExprVisitor.h 101 for (auto *SubStmt : S->children())
tools/clang/include/clang/AST/Expr.h 914 static bool classof(const Stmt *T) {
927 Stmt *SubExpr;
945 static bool classof(const Stmt *T) {
1016 static bool classof(const Stmt *T) {
1118 static bool classof(const Stmt *T) {
1356 static bool classof(const Stmt *T) {
1451 static bool classof(const Stmt *T) {
1490 static bool classof(const Stmt *T) {
1545 static bool classof(const Stmt *T) {
1619 static bool classof(const Stmt *T) {
1638 Stmt *Val;
1658 static bool classof(const Stmt *T) {
1864 static bool classof(const Stmt *T) {
1880 private llvm::TrailingObjects<PredefinedExpr, Stmt *> {
1914 *getTrailingObjects<Stmt *>() = SL;
1935 ? static_cast<StringLiteral *>(*getTrailingObjects<Stmt *>())
1941 ? static_cast<StringLiteral *>(*getTrailingObjects<Stmt *>())
1951 static bool classof(const Stmt *T) {
1957 return child_range(getTrailingObjects<Stmt *>(),
1958 getTrailingObjects<Stmt *>() + hasFunctionName());
1962 return const_child_range(getTrailingObjects<Stmt *>(),
1963 getTrailingObjects<Stmt *>() + hasFunctionName());
1971 Stmt *Val;
2000 static bool classof(const Stmt *T) {
2022 Stmt *Val;
2124 static bool classof(const Stmt *T) {
2327 static bool classof(const Stmt *T) {
2333 Stmt **begin = reinterpret_cast<Stmt **>(getTrailingObjects<Expr *>());
2337 Stmt *const *begin =
2350 Stmt *Ex;
2423 static bool classof(const Stmt *T) {
2439 Stmt *SubExprs[END_EXPR];
2502 static bool classof(const Stmt *T) {
2555 Stmt **getTrailingStmts() {
2559 Stmt *const *getTrailingStmts() const {
2586 return (1 + NumPreArgs + NumArgs) * sizeof(Stmt *);
2589 Stmt *getPreArg(unsigned I) {
2593 const Stmt *getPreArg(unsigned I) const {
2597 void setPreArg(unsigned I, Stmt *PreArg) {
2733 ArrayRef<Stmt *> getRawSubExprs() {
2780 static bool classof(const Stmt *T) {
2823 Stmt *Base;
3039 static bool classof(const Stmt *T) {
3062 Stmt *Init;
3110 static bool classof(const Stmt *T) {
3126 Stmt *Op;
3219 static bool classof(const Stmt *T) {
3288 static bool classof(const Stmt *T) {
3337 static bool classof(const Stmt *T) {
3383 static bool classof(const Stmt *T) {
3411 Stmt *SubExprs[END_EXPR];
3567 static bool classof(const Stmt *S) {
3658 static bool classof(const Stmt *S) {
3699 static bool classof(const Stmt *T) {
3709 Stmt* SubExprs[END_EXPR]; // Left/Middle/Right hand sides.
3762 static bool classof(const Stmt *T) {
3788 Stmt *SubExprs[NUM_SUBEXPRS];
3850 static bool classof(const Stmt *T) {
3907 static bool classof(const Stmt *T) {
3927 Stmt *SubStmt;
3954 static bool classof(const Stmt *T) {
3978 Stmt **SubExprs;
3998 static bool classof(const Stmt *T) {
4041 Stmt *SrcExpr;
4082 static bool classof(const Stmt *T) {
4104 Stmt* SubExprs[END_EXPR]; // Left/Middle/Right hand sides.
4163 static bool classof(const Stmt *T) {
4202 static bool classof(const Stmt *T) {
4217 Stmt *Val;
4254 static bool classof(const Stmt *T) {
4322 static bool classof(const Stmt *T) {
4377 typedef ASTVector<Stmt *> InitExprsTy;
4555 static bool classof(const Stmt *T) {
4613 private llvm::TrailingObjects<DesignatedInitExpr, Stmt *> {
4865 return cast<Expr>(getTrailingObjects<Stmt *>()[Idx]);
4870 getTrailingObjects<Stmt *>()[Idx] = E;
4883 static bool classof(const Stmt *T) {
4889 Stmt **begin = getTrailingObjects<Stmt *>();
4889 Stmt **begin = getTrailingObjects<Stmt *>();
4893 Stmt * const *begin = getTrailingObjects<Stmt *>();
4893 Stmt * const *begin = getTrailingObjects<Stmt *>();
4918 static bool classof(const Stmt *T) {
4948 Stmt *BaseAndUpdaterExprs[2];
4960 static bool classof(const Stmt *T) {
5000 Stmt *SubExprs[2];
5028 static bool classof(const Stmt *S) {
5063 static bool classof(const Stmt *S) {
5099 static bool classof(const Stmt *T) {
5117 private llvm::TrailingObjects<ParenListExpr, Stmt *> {
5153 return reinterpret_cast<Expr **>(getTrailingObjects<Stmt *>());
5165 static bool classof(const Stmt *T) {
5171 return child_range(getTrailingObjects<Stmt *>(),
5172 getTrailingObjects<Stmt *>() + getNumExprs());
5175 return const_child_range(getTrailingObjects<Stmt *>(),
5176 getTrailingObjects<Stmt *>() + getNumExprs());
5208 private llvm::TrailingObjects<GenericSelectionExpr, Stmt *,
5235 unsigned numTrailingObjects(OverloadToken<Stmt *>) const {
5297 typename std::conditional<Const, const Stmt *const *, Stmt **>::type;
5297 typename std::conditional<Const, const Stmt *const *, Stmt **>::type;
5390 return cast<Expr>(getTrailingObjects<Stmt *>()[ControllingIndex]);
5393 return cast<Expr>(getTrailingObjects<Stmt *>()[ControllingIndex]);
5400 getTrailingObjects<Stmt *>()[AssocExprStartIndex + getResultIndex()]);
5404 getTrailingObjects<Stmt *>()[AssocExprStartIndex + getResultIndex()]);
5408 return {reinterpret_cast<Expr *const *>(getTrailingObjects<Stmt *>() +
5422 cast<Expr>(getTrailingObjects<Stmt *>()[AssocExprStartIndex + I]),
5430 cast<Expr>(getTrailingObjects<Stmt *>()[AssocExprStartIndex + I]),
5436 AssociationIterator Begin(getTrailingObjects<Stmt *>() +
5446 ConstAssociationIterator Begin(getTrailingObjects<Stmt *>() +
5463 static bool classof(const Stmt *T) {
5468 return child_range(getTrailingObjects<Stmt *>(),
5469 getTrailingObjects<Stmt *>() +
5473 return const_child_range(getTrailingObjects<Stmt *>(),
5474 getTrailingObjects<Stmt *>() +
5491 Stmt *Base;
5538 static bool classof(const Stmt *T) {
5571 const Stmt *getBody() const;
5572 Stmt *getBody();
5584 static bool classof(const Stmt *T) {
5602 Stmt *SrcExpr;
5634 static bool classof(const Stmt *T) {
5787 Stmt *const *cs = const_cast<Stmt *const *>(
5792 static bool classof(const Stmt *T) {
5822 Stmt *SubExprs[END_EXPR + 1];
5903 static bool classof(const Stmt *T) {
5957 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/ExprCXX.h 143 static bool classof(const Stmt *T) {
218 static bool classof(const Stmt *T) {
252 static bool classof(const Stmt *T) {
277 Stmt *SemanticForm;
342 static bool classof(const Stmt *T) {
392 static bool classof(const Stmt *T) {
435 static bool classof(const Stmt *T) {
474 static bool classof(const Stmt *T) {
515 static bool classof(const Stmt *T) {
550 static bool classof(const Stmt *T) {
639 static bool classof(const Stmt *S) {
666 static bool classof(const Stmt *T) {
700 static bool classof(const Stmt *T) {
716 Stmt *SubExpr = nullptr;
748 static bool classof(const Stmt *S) {
766 llvm::PointerUnion<Stmt *, TypeSourceInfo *> Operand;
823 return static_cast<Expr*>(Operand.get<Stmt *>());
836 static bool classof(const Stmt *T) {
844 auto **begin = reinterpret_cast<Stmt **>(&Operand);
852 auto **begin =
915 static bool classof(const Stmt *T) {
942 Stmt *SubExprs[NUM_SUBEXPRS];
982 static bool classof(const Stmt *T) {
1002 llvm::PointerUnion<Stmt *, TypeSourceInfo *> Operand;
1048 return static_cast<Expr*>(Operand.get<Stmt *>());
1064 static bool classof(const Stmt *T) {
1072 auto **begin = reinterpret_cast<Stmt **>(&Operand);
1079 auto **begin =
1121 static bool classof(const Stmt *T) {
1144 Stmt *Operand;
1183 static bool classof(const Stmt *T) {
1257 static bool classof(const Stmt *T) {
1326 static bool classof(const Stmt *T) {
1375 Stmt *SubExpr = nullptr;
1409 static bool classof(const Stmt *T) {
1458 inline Stmt **getTrailingArgs();
1459 const Stmt *const *getTrailingArgs() const {
1478 return NumArgs * sizeof(Stmt *);
1593 static bool classof(const Stmt *T) {
1668 static bool classof(const Stmt *T) {
1730 static bool classof(const Stmt *T) {
1784 static bool classof(const Stmt *T) {
1789 Stmt **CXXConstructExpr::getTrailingArgs() {
1819 private llvm::TrailingObjects<LambdaExpr, Stmt *> {
1866 Stmt **getStoredStmts() { return getTrailingObjects<Stmt *>(); }
1866 Stmt **getStoredStmts() { return getTrailingObjects<Stmt *>(); }
1868 Stmt *const *getStoredStmts() const { return getTrailingObjects<Stmt *>(); }
1868 Stmt *const *getStoredStmts() const { return getTrailingObjects<Stmt *>(); }
2030 static bool classof(const Stmt *T) {
2084 static bool classof(const Stmt *T) {
2102 private llvm::TrailingObjects<CXXNewExpr, Stmt *, SourceRange> {
2143 unsigned numTrailingObjects(OverloadToken<Stmt *>) const {
2228 return cast_or_null<Expr>(getTrailingObjects<Stmt *>()[arraySizeOffset()]);
2233 return cast_or_null<Expr>(getTrailingObjects<Stmt *>()[arraySizeOffset()]);
2241 return reinterpret_cast<Expr **>(getTrailingObjects<Stmt *>() +
2277 ? cast<Expr>(getTrailingObjects<Stmt *>()[initExprOffset()])
2282 ? cast<Expr>(getTrailingObjects<Stmt *>()[initExprOffset()])
2314 return getTrailingObjects<Stmt *>() + placementNewArgsOffset();
2320 return getTrailingObjects<Stmt *>() + placementNewArgsOffset();
2326 using raw_arg_iterator = Stmt **;
2328 raw_arg_iterator raw_arg_begin() { return getTrailingObjects<Stmt *>(); }
2333 return getTrailingObjects<Stmt *>();
2345 static bool classof(const Stmt *T) {
2366 Stmt *Argument = nullptr;
2415 static bool classof(const Stmt *T) {
2483 Stmt *Base = nullptr;
2607 static bool classof(const Stmt *T) {
2693 static bool classof(const Stmt *T) {
2764 static bool classof(const Stmt *T) {
2828 static bool classof(const Stmt *T) {
3020 static bool classof(const Stmt *T) {
3136 static bool classof(const Stmt *T) {
3283 static bool classof(const Stmt *T) {
3357 static bool classof(const Stmt *T) {
3487 static bool classof(const Stmt *T) {
3493 auto **begin = reinterpret_cast<Stmt **>(arg_begin());
3498 auto **begin = reinterpret_cast<Stmt **>(
3522 Stmt *Base;
3738 static bool classof(const Stmt *T) {
3784 Stmt *Base;
3907 static bool classof(const Stmt *T) {
3961 Stmt *Operand;
3986 static bool classof(const Stmt *T) {
4028 Stmt *Pattern;
4068 static bool classof(const Stmt *T) {
4193 static bool classof(const Stmt *T) {
4217 Stmt *Replacement;
4245 static bool classof(const Stmt *s) {
4309 static bool classof(const Stmt *T) {
4386 static bool classof(const Stmt *T) {
4427 Stmt *Temporary;
4435 llvm::PointerUnion<Stmt *, ExtraState *> State;
4450 Stmt *getTemporary() const {
4451 return State.is<Stmt *>() ? State.get<Stmt *>()
4451 return State.is<Stmt *>() ? State.get<Stmt *>()
4480 return State.is<Stmt *>() ? nullptr
4487 return State.is<Stmt *>() ? 0 : State.get<ExtraState *>()->ManglingNumber;
4504 static bool classof(const Stmt *T) {
4510 if (State.is<Stmt *>())
4518 if (State.is<Stmt *>())
4545 Stmt *SubExprs[2];
4593 static bool classof(const Stmt *T) {
4625 Stmt *SubExprs[SubExpr::Count];
4698 static bool classof(const Stmt *T) {
4734 static bool classof(const Stmt *T) {
4745 Stmt *SubExprs[2];
4786 static bool classof(const Stmt *T) {
4810 static bool classof(const Stmt *T) {
4839 static bool classof(const Stmt *T) {
4945 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/ExprObjC.h 51 Stmt *String;
79 static bool classof(const Stmt *T) {
115 static bool classof(const Stmt *T) {
125 Stmt *SubExpr;
181 static bool classof(const Stmt *T) {
254 static bool classof(const Stmt *T) {
386 static_assert(sizeof(KeyValuePair) == sizeof(Stmt *) * 2,
399 static bool classof(const Stmt *T) {
448 static bool classof(const Stmt *T) {
490 static bool classof(const Stmt *T) {
540 static bool classof(const Stmt *T) {
548 Stmt *Base;
607 static bool classof(const Stmt *T) {
645 llvm::PointerUnion3<Stmt *, const Type *, ObjCInterfaceDecl *> Receiver;
757 return cast<Expr>(Receiver.get<Stmt*>());
760 return cast<Expr>(Receiver.get<Stmt*>());
775 bool isObjectReceiver() const { return Receiver.is<Stmt*>(); }
791 if (Receiver.is<Stmt*>()) {
792 Stmt **begin = reinterpret_cast<Stmt**>(&Receiver); // hack!
803 static bool classof(const Stmt *T) {
853 Stmt* SubExprs[END_EXPR];
891 void setBaseExpr(Stmt *S) { SubExprs[BASE] = S; }
894 void setKeyExpr(Stmt *S) { SubExprs[KEY] = S; }
916 static bool classof(const Stmt *T) {
1485 static bool classof(const Stmt *T) {
1494 Stmt *Base;
1550 static bool classof(const Stmt *T) {
1581 Stmt *Operand;
1627 static bool classof(const Stmt *s) {
1681 static bool classof(const Stmt *T) {
1731 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/ExprOpenMP.h 46 Stmt *SubExprs[END_EXPR];
118 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/ExternalASTSource.h 129 virtual Stmt *GetExternalDeclStmt(uint64_t Offset);
359 explicit LazyOffsetPtr(T *Ptr) : Ptr(reinterpret_cast<uint64_t>(Ptr)) {}
400 T* get(ExternalASTSource *Source) const {
597 LazyOffsetPtr<Stmt, uint64_t, &ExternalASTSource::GetExternalDeclStmt>;
tools/clang/include/clang/AST/JSONNodeDumper.h 189 void Visit(const Stmt *Node);
tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h 113 Stmt::child_range getStmtChildren(Stmt *S) { return S->children(); }
113 Stmt::child_range getStmtChildren(Stmt *S) { return S->children(); }
115 SmallVector<Stmt *, 8> getStmtChildren(CXXOperatorCallExpr *CE) {
116 SmallVector<Stmt *, 8> Children(CE->children());
tools/clang/include/clang/AST/ODRHash.h 81 void AddStmt(const Stmt *S);
tools/clang/include/clang/AST/OpenMPClause.h 111 Stmt *PreInit = nullptr;
122 void setPreInitStmt(Stmt *S, OpenMPDirectiveKind ThisRegion = OMPD_unknown) {
129 const Stmt *getPreInitStmt() const { return PreInit; }
132 Stmt *getPreInitStmt() { return PreInit; }
270 Stmt *Allocator = nullptr;
429 Stmt *Condition = nullptr;
465 OMPIfClause(OpenMPDirectiveKind NameModifier, Expr *Cond, Stmt *HelperCond,
529 Stmt *Condition = nullptr;
544 OMPFinalClause(Expr *Cond, Stmt *HelperCond,
598 Stmt *NumThreads = nullptr;
613 OMPNumThreadsClause(Expr *NumThreads, Stmt *HelperNumThreads,
674 Stmt *Safelen = nullptr;
739 Stmt *Simdlen = nullptr;
804 Stmt *NumForLoops = nullptr;
1383 Expr *ChunkSize, Stmt *HelperChunkSize,
1481 Stmt *NumForLoops = nullptr;
2062 ArrayRef<Expr *> InitVL, Stmt *PreInit);
2253 Stmt *PreInit, Expr *PostUpdate);
2559 ArrayRef<Expr *> ReductionOps, Stmt *PreInit, Expr *PostUpdate);
2793 ArrayRef<Expr *> ReductionOps, Stmt *PreInit, Expr *PostUpdate);
3038 Stmt *PreInit, Expr *PostUpdate);
3266 Stmt *PreInit, Expr *PostUpdate);
4065 Stmt *Device = nullptr;
4081 OMPDeviceClause(Expr *E, Stmt *HelperE, OpenMPDirectiveKind CaptureRegion,
5065 Stmt *NumTeams = nullptr;
5082 OMPNumTeamsClause(Expr *E, Stmt *HelperE, OpenMPDirectiveKind CaptureRegion,
5140 Stmt *ThreadLimit = nullptr;
5157 OMPThreadLimitClause(Expr *E, Stmt *HelperE,
5216 Stmt *Priority = nullptr;
5233 OMPPriorityClause(Expr *Priority, Stmt *HelperPriority,
5290 Stmt *Grainsize = nullptr;
5304 OMPGrainsizeClause(Expr *Size, Stmt *HelperSize,
5397 Stmt *NumTasks = nullptr;
5411 OMPNumTasksClause(Expr *Size, Stmt *HelperSize,
5464 Stmt *Hint = nullptr;
5578 Stmt *HelperChunkSize)
tools/clang/include/clang/AST/ParentMap.h 23 ParentMap(Stmt* ASTRoot);
29 void addStmt(Stmt* S);
34 void setParent(const Stmt *S, const Stmt *Parent);
34 void setParent(const Stmt *S, const Stmt *Parent);
36 Stmt *getParent(Stmt*) const;
36 Stmt *getParent(Stmt*) const;
37 Stmt *getParentIgnoreParens(Stmt *) const;
37 Stmt *getParentIgnoreParens(Stmt *) const;
38 Stmt *getParentIgnoreParenCasts(Stmt *) const;
38 Stmt *getParentIgnoreParenCasts(Stmt *) const;
39 Stmt *getParentIgnoreParenImpCasts(Stmt *) const;
39 Stmt *getParentIgnoreParenImpCasts(Stmt *) const;
40 Stmt *getOuterParenParent(Stmt *) const;
40 Stmt *getOuterParenParent(Stmt *) const;
42 const Stmt *getParent(const Stmt* S) const {
42 const Stmt *getParent(const Stmt* S) const {
46 const Stmt *getParentIgnoreParens(const Stmt *S) const {
46 const Stmt *getParentIgnoreParens(const Stmt *S) const {
50 const Stmt *getParentIgnoreParenCasts(const Stmt *S) const {
50 const Stmt *getParentIgnoreParenCasts(const Stmt *S) const {
54 bool hasParent(Stmt* S) const {
tools/clang/include/clang/AST/PrettyPrinter.h 29 virtual bool handledStmt(Stmt* E, raw_ostream& OS) = 0;
tools/clang/include/clang/AST/RecursiveASTVisitor.h 157 typedef SmallVectorImpl<llvm::PointerIntPair<Stmt *, 1, bool>>
193 bool TraverseStmt(Stmt *S, DataRecursionQueue *Queue = nullptr);
198 bool dataTraverseStmtPre(Stmt *S) { return true; }
205 bool dataTraverseStmtPost(Stmt *S) { return true; }
319 Stmt::child_range getStmtChildren(Stmt *S) { return S->children(); }
319 Stmt::child_range getStmtChildren(Stmt *S) { return S->children(); }
363 bool WalkUpFromStmt(Stmt *S) { return getDerived().VisitStmt(S); }
364 bool VisitStmt(Stmt *S) { return true; }
539 bool dataTraverseNode(Stmt *S, DataRecursionQueue *Queue);
540 bool PostVisitStmt(Stmt *S);
544 bool RecursiveASTVisitor<Derived>::dataTraverseNode(Stmt *S,
584 case Stmt::NoStmtClass:
599 bool RecursiveASTVisitor<Derived>::PostVisitStmt(Stmt *S) {
601 case Stmt::NoStmtClass:
626 bool RecursiveASTVisitor<Derived>::TraverseStmt(Stmt *S,
636 SmallVector<llvm::PointerIntPair<Stmt *, 1, bool>, 8> LocalQueue;
641 Stmt *CurrS = CurrSAndVisited.getPointer();
2315 for (Stmt *SubStmt : S->children()) {
tools/clang/include/clang/AST/Stmt.h 1067 using ConstCastIterator = CastIterator<T, const T *const, const Stmt *const>;
1082 Stmt(const Stmt &) = delete;
1083 Stmt(Stmt &&) = delete;
1084 Stmt &operator=(const Stmt &) = delete;
1084 Stmt &operator=(const Stmt &) = delete;
1085 Stmt &operator=(Stmt &&) = delete;
1085 Stmt &operator=(Stmt &&) = delete;
1094 if (StatisticsEnabled) Stmt::addStmtClass(SC);
1151 Stmt *IgnoreContainers(bool IgnoreCaptured = false);
1152 const Stmt *IgnoreContainers(bool IgnoreCaptured = false) const {
1156 const Stmt *stripLabelLikeStatements() const;
1157 Stmt *stripLabelLikeStatements() {
1213 class DeclStmt : public Stmt {
1241 static bool classof(const Stmt *T) {
1285 class NullStmt : public Stmt {
1306 static bool classof(const Stmt *T) {
1320 class CompoundStmt final : public Stmt,
1321 private llvm::TrailingObjects<CompoundStmt, Stmt *> {
1328 CompoundStmt(ArrayRef<Stmt *> Stmts, SourceLocation LB, SourceLocation RB);
1331 void setStmts(ArrayRef<Stmt *> Stmts);
1334 static CompoundStmt *Create(const ASTContext &C, ArrayRef<Stmt *> Stmts,
1350 using body_iterator = Stmt **;
1354 body_iterator body_begin() { return getTrailingObjects<Stmt *>(); }
1356 Stmt *body_front() { return !body_empty() ? body_begin()[0] : nullptr; }
1358 Stmt *body_back() {
1362 using const_body_iterator = Stmt *const *;
1370 return getTrailingObjects<Stmt *>();
1375 const Stmt *body_front() const {
1379 const Stmt *body_back() const {
1412 Stmt *getStmtExprResult() {
1413 for (auto *B : llvm::reverse(body())) {
1420 const Stmt *getStmtExprResult() const {
1430 static bool classof(const Stmt *T) {
1443 class SwitchCase : public Stmt {
1472 inline Stmt *getSubStmt();
1473 const Stmt *getSubStmt() const {
1480 static bool classof(const Stmt *T) {
1490 private llvm::TrailingObjects<CaseStmt, Stmt *, SourceLocation> {
1511 unsigned numTrailingObjects(OverloadToken<Stmt *>) const {
1578 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[lhsOffset()]);
1582 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[lhsOffset()]);
1586 getTrailingObjects<Stmt *>()[lhsOffset()] = reinterpret_cast<Stmt *>(Val);
1591 getTrailingObjects<Stmt *>()[rhsOffset()])
1597 getTrailingObjects<Stmt *>()[rhsOffset()])
1604 getTrailingObjects<Stmt *>()[rhsOffset()] = reinterpret_cast<Stmt *>(Val);
1607 Stmt *getSubStmt() { return getTrailingObjects<Stmt *>()[subStmtOffset()]; }
1607 Stmt *getSubStmt() { return getTrailingObjects<Stmt *>()[subStmtOffset()]; }
1608 const Stmt *getSubStmt() const {
1609 return getTrailingObjects<Stmt *>()[subStmtOffset()];
1612 void setSubStmt(Stmt *S) {
1613 getTrailingObjects<Stmt *>()[subStmtOffset()] = S;
1626 static bool classof(const Stmt *T) {
1632 return child_range(getTrailingObjects<Stmt *>(),
1633 getTrailingObjects<Stmt *>() +
1638 return const_child_range(getTrailingObjects<Stmt *>(),
1639 getTrailingObjects<Stmt *>() +
1645 Stmt *SubStmt;
1648 DefaultStmt(SourceLocation DL, SourceLocation CL, Stmt *substmt)
1655 Stmt *getSubStmt() { return SubStmt; }
1656 const Stmt *getSubStmt() const { return SubStmt; }
1657 void setSubStmt(Stmt *S) { SubStmt = S; }
1667 static bool classof(const Stmt *T) {
1687 Stmt *SwitchCase::getSubStmt() {
1701 class ValueStmt : public Stmt {
1712 static bool classof(const Stmt *T) {
1722 Stmt *SubStmt;
1726 LabelStmt(SourceLocation IL, LabelDecl *D, Stmt *substmt)
1741 Stmt *getSubStmt() { return SubStmt; }
1743 const Stmt *getSubStmt() const { return SubStmt; }
1744 void setSubStmt(Stmt *SS) { SubStmt = SS; }
1755 static bool classof(const Stmt *T) {
1770 Stmt *SubStmt;
1773 Stmt *SubStmt)
1794 ArrayRef<const Attr *> Attrs, Stmt *SubStmt);
1804 Stmt *getSubStmt() { return SubStmt; }
1805 const Stmt *getSubStmt() const { return SubStmt; }
1816 static bool classof(const Stmt *T) {
1823 : public Stmt,
1824 private llvm::TrailingObjects<IfStmt, Stmt *, SourceLocation> {
1852 unsigned numTrailingObjects(OverloadToken<Stmt *>) const {
1870 IfStmt(const ASTContext &Ctx, SourceLocation IL, bool IsConstexpr, Stmt *Init,
1871 VarDecl *Var, Expr *Cond, Stmt *Then, SourceLocation EL, Stmt *Else);
1871 VarDecl *Var, Expr *Cond, Stmt *Then, SourceLocation EL, Stmt *Else);
1879 bool IsConstexpr, Stmt *Init, VarDecl *Var, Expr *Cond,
1880 Stmt *Then, SourceLocation EL = SourceLocation(),
1881 Stmt *Else = nullptr);
1898 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[condOffset()]);
1902 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[condOffset()]);
1906 getTrailingObjects<Stmt *>()[condOffset()] = reinterpret_cast<Stmt *>(Cond);
1909 Stmt *getThen() { return getTrailingObjects<Stmt *>()[thenOffset()]; }
1909 Stmt *getThen() { return getTrailingObjects<Stmt *>()[thenOffset()]; }
1910 const Stmt *getThen() const {
1911 return getTrailingObjects<Stmt *>()[thenOffset()];
1914 void setThen(Stmt *Then) {
1915 getTrailingObjects<Stmt *>()[thenOffset()] = Then;
1918 Stmt *getElse() {
1919 return hasElseStorage() ? getTrailingObjects<Stmt *>()[elseOffset()]
1923 const Stmt *getElse() const {
1924 return hasElseStorage() ? getTrailingObjects<Stmt *>()[elseOffset()]
1928 void setElse(Stmt *Else) {
1931 getTrailingObjects<Stmt *>()[elseOffset()] = Else;
1955 getTrailingObjects<Stmt *>()[varOffset()])
1961 getTrailingObjects<Stmt *>()[varOffset()])
1965 Stmt *getInit() {
1966 return hasInitStorage() ? getTrailingObjects<Stmt *>()[initOffset()]
1970 const Stmt *getInit() const {
1971 return hasInitStorage() ? getTrailingObjects<Stmt *>()[initOffset()]
1975 void setInit(Stmt *Init) {
1978 getTrailingObjects<Stmt *>()[initOffset()] = Init;
2010 return child_range(getTrailingObjects<Stmt *>(),
2011 getTrailingObjects<Stmt *>() +
2016 return const_child_range(getTrailingObjects<Stmt *>(),
2017 getTrailingObjects<Stmt *>() +
2021 static bool classof(const Stmt *T) {
2027 class SwitchStmt final : public Stmt,
2028 private llvm::TrailingObjects<SwitchStmt, Stmt *> {
2054 unsigned numTrailingObjects(OverloadToken<Stmt *>) const {
2066 SwitchStmt(const ASTContext &Ctx, Stmt *Init, VarDecl *Var, Expr *Cond);
2073 static SwitchStmt *Create(const ASTContext &Ctx, Stmt *Init, VarDecl *Var,
2088 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[condOffset()]);
2092 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[condOffset()]);
2096 getTrailingObjects<Stmt *>()[condOffset()] = reinterpret_cast<Stmt *>(Cond);
2099 Stmt *getBody() { return getTrailingObjects<Stmt *>()[bodyOffset()]; }
2099 Stmt *getBody() { return getTrailingObjects<Stmt *>()[bodyOffset()]; }
2100 const Stmt *getBody() const {
2101 return getTrailingObjects<Stmt *>()[bodyOffset()];
2104 void setBody(Stmt *Body) {
2105 getTrailingObjects<Stmt *>()[bodyOffset()] = Body;
2108 Stmt *getInit() {
2109 return hasInitStorage() ? getTrailingObjects<Stmt *>()[initOffset()]
2113 const Stmt *getInit() const {
2114 return hasInitStorage() ? getTrailingObjects<Stmt *>()[initOffset()]
2118 void setInit(Stmt *Init) {
2121 getTrailingObjects<Stmt *>()[initOffset()] = Init;
2146 getTrailingObjects<Stmt *>()[varOffset()])
2152 getTrailingObjects<Stmt *>()[varOffset()])
2163 void setBody(Stmt *S, SourceLocation SL) {
2193 return child_range(getTrailingObjects<Stmt *>(),
2194 getTrailingObjects<Stmt *>() +
2199 return const_child_range(getTrailingObjects<Stmt *>(),
2200 getTrailingObjects<Stmt *>() +
2204 static bool classof(const Stmt *T) {
2210 class WhileStmt final : public Stmt,
2211 private llvm::TrailingObjects<WhileStmt, Stmt *> {
2236 unsigned numTrailingObjects(OverloadToken<Stmt *>) const {
2241 WhileStmt(const ASTContext &Ctx, VarDecl *Var, Expr *Cond, Stmt *Body,
2250 Stmt *Body, SourceLocation WL);
2260 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[condOffset()]);
2264 return reinterpret_cast<Expr *>(getTrailingObjects<Stmt *>()[condOffset()]);
2268 getTrailingObjects<Stmt *>()[condOffset()] = reinterpret_cast<Stmt *>(Cond);
2271 Stmt *getBody() { return getTrailingObjects<Stmt *>()[bodyOffset()]; }
2271 Stmt *getBody() { return getTrailingObjects<Stmt *>()[bodyOffset()]; }
2272 const Stmt *getBody() const {
2273 return getTrailingObjects<Stmt *>()[bodyOffset()];
2276 void setBody(Stmt *Body) {
2277 getTrailingObjects<Stmt *>()[bodyOffset()] = Body;
2301 getTrailingObjects<Stmt *>()[varOffset()])
2307 getTrailingObjects<Stmt *>()[varOffset()])
2319 static bool classof(const Stmt *T) {
2325 return child_range(getTrailingObjects<Stmt *>(),
2326 getTrailingObjects<Stmt *>() +
2331 return const_child_range(getTrailingObjects<Stmt *>(),
2332 getTrailingObjects<Stmt *>() +
2338 class DoStmt : public Stmt {
2340 Stmt *SubExprs[END_EXPR];
2345 DoStmt(Stmt *Body, Expr *Cond, SourceLocation DL, SourceLocation WL,
2363 Stmt *getBody() { return SubExprs[BODY]; }
2364 const Stmt *getBody() const { return SubExprs[BODY]; }
2365 void setBody(Stmt *Body) { SubExprs[BODY] = Body; }
2377 static bool classof(const Stmt *T) {
2394 class ForStmt : public Stmt {
2396 Stmt* SubExprs[END_EXPR]; // SubExprs[INIT] is an expression or declstmt.
2400 ForStmt(const ASTContext &C, Stmt *Init, Expr *Cond, VarDecl *condVar,
2401 Expr *Inc, Stmt *Body, SourceLocation FL, SourceLocation LP,
2407 Stmt *getInit() { return SubExprs[INIT]; }
2428 Stmt *getBody() { return SubExprs[BODY]; }
2430 const Stmt *getInit() const { return SubExprs[INIT]; }
2433 const Stmt *getBody() const { return SubExprs[BODY]; }
2435 void setInit(Stmt *S) { SubExprs[INIT] = S; }
2438 void setBody(Stmt *S) { SubExprs[BODY] = S; }
2450 static bool classof(const Stmt *T) {
2465 class GotoStmt : public Stmt {
2489 static bool classof(const Stmt *T) {
2504 class IndirectGotoStmt : public Stmt {
2506 Stmt *Target;
2540 static bool classof(const Stmt *T) {
2553 class ContinueStmt : public Stmt {
2568 static bool classof(const Stmt *T) {
2583 class BreakStmt : public Stmt {
2598 static bool classof(const Stmt *T) {
2621 : public Stmt,
2626 Stmt *RetExpr;
2684 static bool classof(const Stmt *T) {
2703 class AsmStmt : public Stmt {
2721 Stmt **Exprs = nullptr;
2787 static bool classof(const Stmt *T) {
3054 Stmt **Exprs,
3079 static bool classof(const Stmt *T) {
3176 static bool classof(const Stmt *T) {
3189 class SEHExceptStmt : public Stmt {
3194 Stmt *Children[2];
3198 SEHExceptStmt(SourceLocation Loc, Expr *FilterExpr, Stmt *Block);
3205 Stmt *Block);
3228 static bool classof(const Stmt *T) {
3233 class SEHFinallyStmt : public Stmt {
3238 Stmt *Block;
3240 SEHFinallyStmt(SourceLocation Loc, Stmt *Block);
3246 Stmt *Block);
3263 static bool classof(const Stmt *T) {
3268 class SEHTryStmt : public Stmt {
3274 Stmt *Children[2];
3280 Stmt *TryBlock,
3281 Stmt *Handler);
3287 SourceLocation TryLoc, Stmt *TryBlock,
3288 Stmt *Handler);
3301 Stmt *getHandler() const { return Children[HANDLER]; }
3315 static bool classof(const Stmt *T) {
3321 class SEHLeaveStmt : public Stmt {
3337 static bool classof(const Stmt *T) {
3360 class CapturedStmt : public Stmt {
3432 CapturedStmt(Stmt *S, CapturedRegionKind Kind, ArrayRef<Capture> Captures,
3438 Stmt **getStoredStmts() { return reinterpret_cast<Stmt **>(this + 1); }
3440 Stmt *const *getStoredStmts() const {
3446 void setCapturedStmt(Stmt *S) { getStoredStmts()[NumCaptures] = S; }
3451 static CapturedStmt *Create(const ASTContext &Context, Stmt *S,
3461 Stmt *getCapturedStmt() { return getStoredStmts()[NumCaptures]; }
3462 const Stmt *getCapturedStmt() const { return getStoredStmts()[NumCaptures]; }
3564 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/StmtCXX.h 28 class CXXCatchStmt : public Stmt {
33 Stmt *HandlerBlock;
36 CXXCatchStmt(SourceLocation catchLoc, VarDecl *exDecl, Stmt *handlerBlock)
51 Stmt *getHandlerBlock() const { return HandlerBlock; }
53 static bool classof(const Stmt *T) {
68 class CXXTryStmt final : public Stmt,
69 private llvm::TrailingObjects<CXXTryStmt, Stmt *> {
76 size_t numTrailingObjects(OverloadToken<Stmt *>) const { return NumHandlers; }
78 CXXTryStmt(SourceLocation tryLoc, Stmt *tryBlock, ArrayRef<Stmt*> handlers);
78 CXXTryStmt(SourceLocation tryLoc, Stmt *tryBlock, ArrayRef<Stmt*> handlers);
82 Stmt *const *getStmts() const { return getTrailingObjects<Stmt *>(); }
82 Stmt *const *getStmts() const { return getTrailingObjects<Stmt *>(); }
83 Stmt **getStmts() { return getTrailingObjects<Stmt *>(); }
83 Stmt **getStmts() { return getTrailingObjects<Stmt *>(); }
87 Stmt *tryBlock, ArrayRef<Stmt*> handlers);
87 Stmt *tryBlock, ArrayRef<Stmt*> handlers);
114 static bool classof(const Stmt *T) {
134 class CXXForRangeStmt : public Stmt {
139 Stmt *SubExprs[END];
146 CXXForRangeStmt(Stmt *InitStmt, DeclStmt *Range, DeclStmt *Begin,
148 Stmt *Body, SourceLocation FL, SourceLocation CAL,
152 Stmt *getInit() { return SubExprs[INIT]; }
156 const Stmt *getInit() const { return SubExprs[INIT]; }
169 Stmt *getBody() { return SubExprs[BODY]; }
189 const Stmt *getBody() const { return SubExprs[BODY]; }
191 void setInit(Stmt *S) { SubExprs[INIT] = S; }
193 void setRangeStmt(Stmt *S) { SubExprs[RANGE] = S; }
194 void setBeginStmt(Stmt *S) { SubExprs[BEGINSTMT] = S; }
195 void setEndStmt(Stmt *S) { SubExprs[ENDSTMT] = S; }
198 void setLoopVarStmt(Stmt *S) { SubExprs[LOOPVAR] = S; }
199 void setBody(Stmt *S) { SubExprs[BODY] = S; }
211 static bool classof(const Stmt *T) {
252 class MSDependentExistsStmt : public Stmt {
257 Stmt *SubStmt;
309 static bool classof(const Stmt *T) {
318 : public Stmt,
319 private llvm::TrailingObjects<CoroutineBodyStmt, Stmt *> {
341 Stmt **getStoredStmts() { return getTrailingObjects<Stmt *>(); }
341 Stmt **getStoredStmts() { return getTrailingObjects<Stmt *>(); }
343 Stmt *const *getStoredStmts() const { return getTrailingObjects<Stmt *>(); }
343 Stmt *const *getStoredStmts() const { return getTrailingObjects<Stmt *>(); }
348 Stmt *Body = nullptr;
349 Stmt *Promise = nullptr;
352 Stmt *OnException = nullptr;
353 Stmt *OnFallthrough = nullptr;
357 Stmt *ResultDecl = nullptr;
358 Stmt *ReturnStmt = nullptr;
359 Stmt *ReturnStmtOnAllocFailure = nullptr;
360 ArrayRef<Stmt *> ParamMoves;
378 Stmt *getBody() const {
382 Stmt *getPromiseDeclStmt() const {
389 Stmt *getInitSuspendStmt() const {
392 Stmt *getFinalSuspendStmt() const {
396 Stmt *getExceptionHandler() const {
399 Stmt *getFallthroughHandler() const {
412 Stmt *getResultDecl() const { return getStoredStmts()[SubStmt::ResultDecl]; }
413 Stmt *getReturnStmt() const { return getStoredStmts()[SubStmt::ReturnStmt]; }
414 Stmt *getReturnStmtOnAllocFailure() const {
417 ArrayRef<Stmt const *> getParamMoves() const {
440 static bool classof(const Stmt *T) {
456 class CoreturnStmt : public Stmt {
460 Stmt *SubStmts[SubStmt::Count];
466 CoreturnStmt(SourceLocation CoreturnLoc, Stmt *Operand, Stmt *PromiseCall,
466 CoreturnStmt(SourceLocation CoreturnLoc, Stmt *Operand, Stmt *PromiseCall,
511 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/StmtGraphTraits.h 24 using NodeRef = clang::Stmt *;
25 using ChildIteratorType = clang::Stmt::child_iterator;
26 using nodes_iterator = llvm::df_iterator<clang::Stmt *>;
28 static NodeRef getEntryNode(clang::Stmt *S) { return S; }
40 static nodes_iterator nodes_begin(clang::Stmt* S) {
44 static nodes_iterator nodes_end(clang::Stmt* S) {
50 using NodeRef = const clang::Stmt *;
51 using ChildIteratorType = clang::Stmt::const_child_iterator;
52 using nodes_iterator = llvm::df_iterator<const clang::Stmt *>;
54 static NodeRef getEntryNode(const clang::Stmt *S) { return S; }
tools/clang/include/clang/AST/StmtIterator.h 37 Stmt **stmt;
43 StmtIteratorBase(Stmt **s) : stmt(s) {}
73 Stmt*& GetDeclExpr() const;
86 StmtIteratorImpl(Stmt **s) : StmtIteratorBase(s) {}
124 struct StmtIterator : public StmtIteratorImpl<StmtIterator, Stmt*&> {
126 StmtIterator(Stmt** S) : StmtIteratorImpl<StmtIterator, Stmt*&>(S) {}
141 const Stmt*> {
146 ConstStmtIterator(Stmt * const *S)
tools/clang/include/clang/AST/StmtObjC.h 23 class ObjCForCollectionStmt : public Stmt {
25 Stmt* SubExprs[END_EXPR]; // SubExprs[ELEM] is an expression or declstmt.
29 ObjCForCollectionStmt(Stmt *Elem, Expr *Collect, Stmt *Body,
29 ObjCForCollectionStmt(Stmt *Elem, Expr *Collect, Stmt *Body,
34 Stmt *getElement() { return SubExprs[ELEM]; }
38 Stmt *getBody() { return SubExprs[BODY]; }
40 const Stmt *getElement() const { return SubExprs[ELEM]; }
44 const Stmt *getBody() const { return SubExprs[BODY]; }
46 void setElement(Stmt *S) { SubExprs[ELEM] = S; }
50 void setBody(Stmt *S) { SubExprs[BODY] = S; }
62 static bool classof(const Stmt *T) {
77 class ObjCAtCatchStmt : public Stmt {
80 Stmt *Body;
86 Stmt *atCatchStmt)
93 const Stmt *getCatchBody() const { return Body; }
94 Stmt *getCatchBody() { return Body; }
95 void setCatchBody(Stmt *S) { Body = S; }
115 static bool classof(const Stmt *T) {
127 class ObjCAtFinallyStmt : public Stmt {
129 Stmt *AtFinallyStmt;
132 ObjCAtFinallyStmt(SourceLocation atFinallyLoc, Stmt *atFinallyStmt)
139 const Stmt *getFinallyBody() const { return AtFinallyStmt; }
140 Stmt *getFinallyBody() { return AtFinallyStmt; }
141 void setFinallyBody(Stmt *S) { AtFinallyStmt = S; }
151 static bool classof(const Stmt *T) {
165 class ObjCAtTryStmt : public Stmt {
181 Stmt **getStmts() { return reinterpret_cast<Stmt **> (this + 1); }
182 const Stmt* const *getStmts() const {
186 ObjCAtTryStmt(SourceLocation atTryLoc, Stmt *atTryStmt,
187 Stmt **CatchStmts, unsigned NumCatchStmts,
188 Stmt *atFinallyStmt);
197 SourceLocation atTryLoc, Stmt *atTryStmt,
198 Stmt **CatchStmts, unsigned NumCatchStmts,
199 Stmt *atFinallyStmt);
208 const Stmt *getTryBody() const { return getStmts()[0]; }
209 Stmt *getTryBody() { return getStmts()[0]; }
210 void setTryBody(Stmt *S) { getStmts()[0] = S; }
247 void setFinallyStmt(Stmt *S) {
255 static bool classof(const Stmt *T) {
277 class ObjCAtSynchronizedStmt : public Stmt {
281 Stmt* SubStmts[END_EXPR];
284 ObjCAtSynchronizedStmt(SourceLocation atSynchronizedLoc, Stmt *synchExpr,
285 Stmt *synchBody)
303 void setSynchBody(Stmt *S) { SubStmts[SYNC_BODY] = S; }
311 void setSynchExpr(Stmt *S) { SubStmts[SYNC_EXPR] = S; }
318 static bool classof(const Stmt *T) {
332 class ObjCAtThrowStmt : public Stmt {
334 Stmt *Throw;
337 ObjCAtThrowStmt(SourceLocation atThrowLoc, Stmt *throwExpr)
346 void setThrowExpr(Stmt *S) { Throw = S; }
356 static bool classof(const Stmt *T) {
368 class ObjCAutoreleasePoolStmt : public Stmt {
370 Stmt *SubStmt;
373 ObjCAutoreleasePoolStmt(SourceLocation atLoc, Stmt *subStmt)
379 const Stmt *getSubStmt() const { return SubStmt; }
380 Stmt *getSubStmt() { return SubStmt; }
381 void setSubStmt(Stmt *S) { SubStmt = S; }
391 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/StmtOpenMP.h 33 class OMPExecutableDirective : public Stmt {
85 void setAssociatedStmt(Stmt *S) {
95 std::forward_iterator_tag, Stmt *, ptrdiff_t, Stmt *, Stmt *> {
95 std::forward_iterator_tag, Stmt *, ptrdiff_t, Stmt *, Stmt *> {
95 std::forward_iterator_tag, Stmt *, ptrdiff_t, Stmt *, Stmt *> {
123 Stmt *operator*() const { return *ChildI; }
124 Stmt *operator->() const { return **this; }
253 const Stmt *getAssociatedStmt() const {
257 Stmt *getAssociatedStmt() {
303 static bool classof(const Stmt *S) {
311 Stmt **ChildStorage = reinterpret_cast<Stmt **>(getClauses().end());
320 Stmt **ChildStorage = reinterpret_cast<Stmt **>(
340 const Stmt *getStructuredBlock() const;
342 Stmt *getStructuredBlock() {
398 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel);
411 static bool classof(const Stmt *T) {
604 void setPreInits(Stmt *PreInits) {
842 Stmt *PreInits;
941 const Stmt *getPreInits() const {
944 Stmt *getPreInits() { return *std::next(child_begin(), PreInitsOffset); }
1087 const Stmt *getBody() const {
1089 const Stmt *Body =
1159 static bool classof(const Stmt *T) {
1238 Stmt *AssociatedStmt,
1251 static bool classof(const Stmt *T) {
1312 Stmt *AssociatedStmt, const HelperExprs &Exprs,
1328 static bool classof(const Stmt *T) {
1380 Stmt *AssociatedStmt, const HelperExprs &Exprs);
1393 static bool classof(const Stmt *T) {
1450 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel);
1464 static bool classof(const Stmt *T) {
1510 Stmt *AssociatedStmt, bool HasCancel);
1524 static bool classof(const Stmt *T) {
1570 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
1581 static bool classof(const Stmt *T) {
1620 Stmt *AssociatedStmt);
1628 static bool classof(const Stmt *T) {
1685 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
1699 static bool classof(const Stmt *T) {
1761 Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel);
1778 static bool classof(const Stmt *T) {
1833 Stmt *AssociatedStmt, const HelperExprs &Exprs);
1847 static bool classof(const Stmt *T) {
1905 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel);
1919 static bool classof(const Stmt *T) {
1975 Stmt *AssociatedStmt, bool HasCancel);
1989 static bool classof(const Stmt *T) {
2033 static bool classof(const Stmt *T) {
2077 static bool classof(const Stmt *T) {
2121 static bool classof(const Stmt *T) {
2170 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
2190 static bool classof(const Stmt *T) {
2249 static bool classof(const Stmt *T) {
2293 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
2303 static bool classof(const Stmt *T) {
2392 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, Expr *X, Expr *V,
2436 static bool classof(const Stmt *T) {
2482 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
2493 static bool classof(const Stmt *T) {
2541 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
2551 static bool classof(const Stmt *T) {
2600 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
2610 static bool classof(const Stmt *T) {
2659 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
2669 static bool classof(const Stmt *T) {
2717 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
2728 static bool classof(const Stmt *T) {
2792 Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel);
2809 static bool classof(const Stmt *T) {
2856 Stmt *AssociatedStmt);
2867 static bool classof(const Stmt *T) {
2925 static bool classof(const Stmt *T) {
2988 static bool classof(const Stmt *T) {
3040 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3053 static bool classof(const Stmt *T) {
3106 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3120 static bool classof(const Stmt *T) {
3174 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3188 static bool classof(const Stmt *T) {
3242 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3255 static bool classof(const Stmt *T) {
3311 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3325 static bool classof(const Stmt *T) {
3379 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3392 static bool classof(const Stmt *T) {
3440 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt);
3451 static bool classof(const Stmt *T) {
3514 Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel);
3531 static bool classof(const Stmt *T) {
3589 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3601 static bool classof(const Stmt *T) {
3655 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3668 static bool classof(const Stmt *T) {
3723 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3736 static bool classof(const Stmt *T) {
3790 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3803 static bool classof(const Stmt *T) {
3857 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3870 static bool classof(const Stmt *T) {
3926 Stmt *AssociatedStmt, const HelperExprs &Exprs);
3940 static bool classof(const Stmt *T) {
3999 Stmt *AssociatedStmt, const HelperExprs &Exprs);
4011 static bool classof(const Stmt *T) {
4075 Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel);
4090 static bool classof(const Stmt *T) {
4139 Stmt *AssociatedStmt);
4149 static bool classof(const Stmt *T) {
4204 Stmt *AssociatedStmt, const HelperExprs &Exprs);
4216 static bool classof(const Stmt *T) {
4284 Stmt *AssociatedStmt, const HelperExprs &Exprs, bool HasCancel);
4299 static bool classof(const Stmt *T) {
4360 Stmt *AssociatedStmt, const HelperExprs &Exprs);
4372 static bool classof(const Stmt *T) {
4430 Stmt *AssociatedStmt, const HelperExprs &Exprs);
4442 static bool classof(const Stmt *T) {
tools/clang/include/clang/AST/TextNodeDumper.h 163 void Visit(const Stmt *Node);
tools/clang/include/clang/AST/Type.h 3015 Stmt *SizeExpr;
3074 Stmt *SizeExpr;
tools/clang/include/clang/ASTMatchers/ASTMatchFinder.h 184 template <typename T> void match(const T &Node, ASTContext &Context) {
266 const NodeT *
269 if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
269 if (const NodeT *Node = N.getNodeAs<NodeT>(BoundTo))
tools/clang/include/clang/ASTMatchers/ASTMatchers.h 110 const T *getNodeAs(StringRef ID) const {
111 return MyBoundNodes.getNodeAs<T>(ID);
138 using StatementMatcher = internal::Matcher<Stmt>;
1055 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
1211 extern const internal::VariadicAllOfMatcher<Stmt> stmt;
1221 extern const internal::VariadicDynCastAllOfMatcher<Stmt, DeclStmt> declStmt;
1234 extern const internal::VariadicDynCastAllOfMatcher<Stmt, MemberExpr> memberExpr;
1248 extern const internal::VariadicDynCastAllOfMatcher<Stmt, UnresolvedMemberExpr>
1260 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
1272 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CallExpr> callExpr;
1302 extern const internal::VariadicDynCastAllOfMatcher<Stmt, LambdaExpr> lambdaExpr;
1311 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXMemberCallExpr>
1323 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCMessageExpr>
1433 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtThrowStmt>
1443 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtTryStmt>
1453 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtCatchStmt>
1463 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtFinallyStmt>
1473 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ExprWithCleanups>
1486 extern const internal::VariadicDynCastAllOfMatcher<Stmt, InitListExpr>
1509 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
1521 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ImplicitValueInitExpr>
1539 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ParenListExpr>
1552 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
1593 extern const internal::VariadicDynCastAllOfMatcher<Stmt, UnresolvedLookupExpr>
1639 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ConstantExpr>
1649 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ParenExpr> parenExpr;
1661 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXConstructExpr>
1672 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
1686 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXThisExpr>
1697 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXBindTemporaryExpr>
1718 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
1730 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNewExpr> cxxNewExpr;
1740 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDeleteExpr>
1751 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ArraySubscriptExpr>
1763 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDefaultArgExpr>
1780 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXOperatorCallExpr>
1789 extern const internal::VariadicDynCastAllOfMatcher<Stmt, Expr> expr;
1798 extern const internal::VariadicDynCastAllOfMatcher<Stmt, DeclRefExpr>
1812 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCIvarRefExpr>
1821 extern const internal::VariadicDynCastAllOfMatcher<Stmt, BlockExpr> blockExpr;
1829 extern const internal::VariadicDynCastAllOfMatcher<Stmt, IfStmt> ifStmt;
1838 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ForStmt> forStmt;
1850 const Stmt *const Increment = Node.getInc();
1865 const Stmt *const Init = Node.getInit();
1876 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXForRangeStmt>
1915 extern const internal::VariadicDynCastAllOfMatcher<Stmt, WhileStmt> whileStmt;
1925 extern const internal::VariadicDynCastAllOfMatcher<Stmt, DoStmt> doStmt;
1935 extern const internal::VariadicDynCastAllOfMatcher<Stmt, BreakStmt> breakStmt;
1945 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ContinueStmt>
1956 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ReturnStmt> returnStmt;
1967 extern const internal::VariadicDynCastAllOfMatcher<Stmt, GotoStmt> gotoStmt;
1978 extern const internal::VariadicDynCastAllOfMatcher<Stmt, LabelStmt> labelStmt;
1990 extern const internal::VariadicDynCastAllOfMatcher<Stmt, AddrLabelExpr>
2001 extern const internal::VariadicDynCastAllOfMatcher<Stmt, SwitchStmt> switchStmt;
2011 extern const internal::VariadicDynCastAllOfMatcher<Stmt, SwitchCase> switchCase;
2021 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CaseStmt> caseStmt;
2031 extern const internal::VariadicDynCastAllOfMatcher<Stmt, DefaultStmt>
2040 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CompoundStmt>
2050 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXCatchStmt>
2060 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXTryStmt> cxxTryStmt;
2069 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXThrowExpr>
2079 extern const internal::VariadicDynCastAllOfMatcher<Stmt, NullStmt> nullStmt;
2089 extern const internal::VariadicDynCastAllOfMatcher<Stmt, AsmStmt> asmStmt;
2097 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXBoolLiteralExpr>
2107 extern const internal::VariadicDynCastAllOfMatcher<Stmt, StringLiteral>
2120 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CharacterLiteral>
2127 extern const internal::VariadicDynCastAllOfMatcher<Stmt, IntegerLiteral>
2137 extern const internal::VariadicDynCastAllOfMatcher<Stmt, FloatingLiteral>
2142 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ImaginaryLiteral>
2148 extern const internal::VariadicDynCastAllOfMatcher<Stmt, UserDefinedLiteral>
2158 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CompoundLiteralExpr>
2162 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNullPtrLiteralExpr>
2166 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ChooseExpr>
2170 extern const internal::VariadicDynCastAllOfMatcher<Stmt, GNUNullExpr>
2178 extern const internal::VariadicDynCastAllOfMatcher<Stmt, AtomicExpr> atomicExpr;
2186 extern const internal::VariadicDynCastAllOfMatcher<Stmt, StmtExpr> stmtExpr;
2194 extern const internal::VariadicDynCastAllOfMatcher<Stmt, BinaryOperator>
2203 extern const internal::VariadicDynCastAllOfMatcher<Stmt, UnaryOperator>
2212 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ConditionalOperator>
2221 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
2233 extern const internal::VariadicDynCastAllOfMatcher<Stmt, OpaqueValueExpr>
2262 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXReinterpretCastExpr>
2278 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXStaticCastExpr>
2293 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDynamicCastExpr>
2304 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXConstCastExpr>
2313 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CStyleCastExpr>
2337 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ExplicitCastExpr>
2344 extern const internal::VariadicDynCastAllOfMatcher<Stmt, ImplicitCastExpr>
2360 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CastExpr> castExpr;
2370 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXFunctionalCastExpr>
2379 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CXXTemporaryObjectExpr>
2388 extern const internal::VariadicDynCastAllOfMatcher<Stmt, PredefinedExpr>
2397 extern const internal::VariadicDynCastAllOfMatcher<Stmt, DesignatedInitExpr>
2470 extern const internal::VariadicDynCastAllOfMatcher<Stmt,
2506 inline internal::Matcher<Stmt> alignOfExpr(
2515 inline internal::Matcher<Stmt> sizeOfExpr(
2886 internal::Matcher<T> findAll(const internal::Matcher<T> &Matcher) {
2886 internal::Matcher<T> findAll(const internal::Matcher<T> &Matcher) {
4300 const Stmt *const Then = Node.getThen();
4312 const Stmt *const Else = Node.getElse();
4419 const Stmt *const Statement = internal::GetBodyMatcher<NodeType>::get(Node);
6430 extern const internal::VariadicDynCastAllOfMatcher<Stmt, CUDAKernelCallExpr>
6648 extern const internal::VariadicDynCastAllOfMatcher<Stmt, OMPExecutableDirective>
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h 160 const T *getNodeAs(StringRef ID) const {
165 return It->second.get<T>();
302 virtual bool matches(const T &Node,
309 return matches(DynNode.getUnchecked<T>(), Finder, Builder);
345 DynTypedMatcher(MatcherInterface<T> *Implementation)
346 : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
436 return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
445 template <typename T> Matcher<T> convertTo() const {
447 return unconditionalConvertTo<T>();
479 class WrapperMatcherInterface : public MatcherInterface<T> {
499 explicit Matcher(MatcherInterface<T> *Implementation)
506 Matcher(const Matcher<From> &Other,
507 typename std::enable_if<std::is_base_of<From, T>::value &&
508 !std::is_same<From, T>::value>::type * = nullptr)
520 std::is_same<T, QualType>::value &&
528 Matcher<To> dynCastTo() const {
529 static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
534 bool matches(const T &Node,
581 return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
922 std::is_same<T, Decl>::value ||
923 std::is_same<T, Stmt>::value ||
923 std::is_same<T, Stmt>::value ||
924 std::is_same<T, QualType>::value ||
925 std::is_same<T, Type>::value ||
926 std::is_same<T, TypeLoc>::value ||
927 std::is_same<T, NestedNameSpecifier>::value ||
928 std::is_same<T, NestedNameSpecifierLoc>::value ||
929 std::is_same<T, CXXCtorInitializer>::value;
994 bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
997 static_assert(std::is_base_of<Decl, T>::value ||
998 std::is_base_of<Stmt, T>::value ||
998 std::is_base_of<Stmt, T>::value ||
999 std::is_base_of<NestedNameSpecifier, T>::value ||
1000 std::is_base_of<NestedNameSpecifierLoc, T>::value ||
1001 std::is_base_of<TypeLoc, T>::value ||
1002 std::is_base_of<QualType, T>::value,
1009 bool matchesDescendantOf(const T &Node,
1013 static_assert(std::is_base_of<Decl, T>::value ||
1014 std::is_base_of<Stmt, T>::value ||
1014 std::is_base_of<Stmt, T>::value ||
1015 std::is_base_of<NestedNameSpecifier, T>::value ||
1016 std::is_base_of<NestedNameSpecifierLoc, T>::value ||
1017 std::is_base_of<TypeLoc, T>::value ||
1018 std::is_base_of<QualType, T>::value,
1026 bool matchesAncestorOf(const T &Node,
1030 static_assert(std::is_base_of<Decl, T>::value ||
1031 std::is_base_of<NestedNameSpecifierLoc, T>::value ||
1032 std::is_base_of<Stmt, T>::value ||
1032 std::is_base_of<Stmt, T>::value ||
1033 std::is_base_of<TypeLoc, T>::value,
1067 using head = T1;
1073 using tail = TypeList<Ts...>;
1084 std::is_base_of<typename AnyTypeList::head, T>::value ||
1085 TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
1096 TypeList<Decl, Stmt, NestedNameSpecifier, NestedNameSpecifierLoc, QualType,
1111 TypeList<Decl, Stmt, NestedNameSpecifier, NestedNameSpecifierLoc, TypeLoc,
1141 explicit Adaptor(const Matcher<T> &InnerMatcher)
1146 template <typename To> operator Matcher<To>() const {
1151 const Matcher<T> InnerMatcher;
1155 static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
1155 static Adaptor<T> create(const Matcher<T> &InnerMatcher) {
1160 Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
1160 Adaptor<T> operator()(const Matcher<T> &InnerMatcher) const {
1184 operator Matcher<T>() const {
1185 static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
1202 operator Matcher<T>() const {
1203 static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
1243 operator Matcher<T>() const {
1245 ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
1246 .template unconditionalConvertTo<T>();
1255 class BindableMatcher : public Matcher<T> {
1257 explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
1258 explicit BindableMatcher(MatcherInterface<T> *Implementation)
1265 Matcher<T> bind(StringRef ID) const {
1268 ->template unconditionalConvertTo<T>();
1285 class HasMatcher : public WrapperMatcherInterface<T> {
1287 explicit HasMatcher(const Matcher<ChildT> &ChildMatcher)
1290 bool matches(const T &Node, ASTMatchFinder *Finder,
1304 class ForEachMatcher : public WrapperMatcherInterface<T> {
1305 static_assert(IsBaseType<ChildT>::value,
1309 explicit ForEachMatcher(const Matcher<ChildT> &ChildMatcher)
1312 bool matches(const T& Node, ASTMatchFinder* Finder,
1335 template <typename T> operator Matcher<T>() const {
1337 Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
1338 getMatchers<T>(std::index_sequence_for<Ps...>()))
1339 .template unconditionalConvertTo<T>();
1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
1376 BindableMatcher<T> makeAllOfComposite(
1377 ArrayRef<const Matcher<T> *> InnerMatchers) {
1388 using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
1395 ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
1397 .template unconditionalConvertTo<T>());
1407 BindableMatcher<T> makeDynCastAllOfComposite(
1410 makeAllOfComposite(InnerMatchers).template dynCastTo<T>());
1418 class HasDescendantMatcher : public WrapperMatcherInterface<T> {
1419 static_assert(IsBaseType<DescendantT>::value,
1423 explicit HasDescendantMatcher(const Matcher<DescendantT> &DescendantMatcher)
1426 bool matches(const T &Node, ASTMatchFinder *Finder,
1438 class HasParentMatcher : public WrapperMatcherInterface<T> {
1439 static_assert(IsBaseType<ParentT>::value,
1443 explicit HasParentMatcher(const Matcher<ParentT> &ParentMatcher)
1446 bool matches(const T &Node, ASTMatchFinder *Finder,
1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
1459 static_assert(IsBaseType<AncestorT>::value,
1463 explicit HasAncestorMatcher(const Matcher<AncestorT> &AncestorMatcher)
1466 bool matches(const T &Node, ASTMatchFinder *Finder,
1480 class ForEachDescendantMatcher : public WrapperMatcherInterface<T> {
1481 static_assert(IsBaseType<DescendantT>::value,
1486 const Matcher<DescendantT> &DescendantMatcher)
1489 bool matches(const T &Node, ASTMatchFinder *Finder,
1557 : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
1558 makeDynCastAllOfComposite<SourceT, TargetT>> {
1575 : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
1575 : public VariadicFunction<BindableMatcher<T>, Matcher<T>,
1576 makeAllOfComposite<T>> {
1767 static const Stmt *get(const Ty &Node) {
1773 inline const Stmt *GetBodyMatcher<FunctionDecl>::get(const FunctionDecl &Node) {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h 199 ast_matchers::internal::Matcher<T> getTypedMatcher() const {
202 ->template convertTo<T>();
227 : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
228 typedef ast_matchers::internal::Matcher<T> MatcherT;
232 return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Analysis/Analyses/Consumed.h 149 const Stmt *From = nullptr;
189 void setSource(const Stmt *Source) { this->From = Source; }
tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h 25 ExprMutationAnalyzer(const Stmt &Stm, ASTContext &Context)
30 const Stmt *findMutation(const Expr *Exp);
31 const Stmt *findMutation(const Decl *Dec);
39 const Stmt *findPointeeMutation(const Expr *Exp);
40 const Stmt *findPointeeMutation(const Decl *Dec);
44 using ResultMap = llvm::DenseMap<const Expr *, const Stmt *>;
46 const Stmt *findMutationMemoized(const Expr *Exp,
49 const Stmt *tryEachDeclRef(const Decl *Dec, MutationFinder Finder);
53 const Stmt *findExprMutation(ArrayRef<ast_matchers::BoundNodes> Matches);
54 const Stmt *findDeclMutation(ArrayRef<ast_matchers::BoundNodes> Matches);
55 const Stmt *
57 const Stmt *
60 const Stmt *findDirectMutation(const Expr *Exp);
61 const Stmt *findMemberMutation(const Expr *Exp);
62 const Stmt *findArrayElementMutation(const Expr *Exp);
63 const Stmt *findCastMutation(const Expr *Exp);
64 const Stmt *findRangeLoopMutation(const Expr *Exp);
65 const Stmt *findReferenceMutation(const Expr *Exp);
66 const Stmt *findFunctionArgMutation(const Expr *Exp);
68 const Stmt &Stm;
86 const Stmt *findMutation(const ParmVarDecl *Parm);
90 llvm::DenseMap<const ParmVarDecl *, const Stmt *> Results;
tools/clang/include/clang/Analysis/Analyses/LiveVariables.h 33 llvm::ImmutableSet<const Stmt *> liveStmts;
42 LivenessValues(llvm::ImmutableSet<const Stmt *> LiveStmts,
48 bool isLive(const Stmt *S) const;
61 virtual void observeStmt(const Stmt *S,
84 bool isLive(const Stmt *S, const VarDecl *D);
88 bool isLive(const Stmt *Loc, const Stmt *StmtVal);
88 bool isLive(const Stmt *Loc, const Stmt *StmtVal);
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h 120 void handleStatement(const Stmt *S) {}
379 til::SExpr *translate(const Stmt *S, CallingContext *Ctx);
382 til::SExpr *lookupStmt(const Stmt *S);
426 using StatementMap = llvm::DenseMap<const Stmt *, til::SExpr *>;
456 void handleStatement(const Stmt *S);
465 void insertStmt(const Stmt *S, til::SExpr *E) {
471 til::SExpr *addStatement(til::SExpr *E, const Stmt *S,
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h 489 Undefined(const Stmt *S = nullptr) : SExpr(COP_Undefined), Cstmt(S) {}
505 const Stmt *Cstmt;
tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h 33 const Stmt *Terminator;
tools/clang/include/clang/Analysis/AnalysisDeclContext.h 132 void registerForcedBlockExpression(const Stmt *stmt);
133 const CFGBlock *getBlockForRegisteredExpression(const Stmt *stmt);
136 Stmt *getBody() const;
141 Stmt *getBody(bool &IsAutosynthesized) const;
186 const Stmt *S, const CFGBlock *Blk,
300 const Stmt *CallSite;
314 const Stmt *s, const CFGBlock *blk, unsigned blockCount,
322 const Stmt *getCallSite() const { return CallSite; }
334 const LocationContext *parent, const Stmt *s,
350 const Stmt *Enter;
353 const Stmt *s, int64_t ID)
362 const LocationContext *parent, const Stmt *s) {
417 const Stmt *s, const CFGBlock *blk,
422 const Stmt *s);
491 const Stmt *S, const CFGBlock *Blk,
505 const Stmt *S, const CFGBlock *Blk,
tools/clang/include/clang/Analysis/BodyFarm.h 36 Stmt *getBody(const FunctionDecl *D);
39 Stmt *getBody(const ObjCMethodDecl *D);
45 typedef llvm::DenseMap<const Decl *, Optional<Stmt *>> BodyMap;
tools/clang/include/clang/Analysis/CFG.h 134 explicit CFGStmt(Stmt *S, Kind K = Statement) : CFGElement(K, S) {
138 const Stmt *getStmt() const {
273 explicit CFGLoopExit(const Stmt *stmt) : CFGElement(LoopExit, stmt) {}
275 const Stmt *getLoopStmt() const {
292 explicit CFGLifetimeEnds(const VarDecl *var, const Stmt *stmt)
299 const Stmt *getTriggerStmt() const {
318 CFGScopeBegin(const VarDecl *VD, const Stmt *S)
322 const Stmt *getTriggerStmt() const {
344 CFGScopeEnd(const VarDecl *VD, const Stmt *S) : CFGElement(ScopeEnd, VD, S) {}
350 const Stmt *getTriggerStmt() const {
391 CFGAutomaticObjDtor(const VarDecl *var, const Stmt *stmt)
399 const Stmt *getTriggerStmt() const {
528 llvm::PointerIntPair<Stmt *, KindBits> Data;
532 CFGTerminator(Stmt *S, Kind K = StmtBranch) : Data(S, K) {}
535 Stmt *getStmt() { return Data.getPointer(); }
536 const Stmt *getStmt() const { return Data.getPointer(); }
772 Stmt *Label = nullptr;
781 const Stmt *LoopTarget = nullptr;
1041 void setLabel(Stmt *Statement) { Label = Statement; }
1042 void setLoopTarget(const Stmt *loopTarget) { LoopTarget = loopTarget; }
1051 Stmt *getTerminatorStmt() { return Terminator.getStmt(); }
1052 const Stmt *getTerminatorStmt() const { return Terminator.getStmt(); }
1062 Stmt *getTerminatorCondition(bool StripParens = true);
1064 const Stmt *getTerminatorCondition(bool StripParens = true) const {
1068 const Stmt *getLoopTarget() const { return LoopTarget; }
1070 Stmt *getLabel() { return Label; }
1071 const Stmt *getLabel() const { return Label; }
1096 void appendStmt(Stmt *statement, BumpVectorContext &C) {
1121 void appendScopeBegin(const VarDecl *VD, const Stmt *S,
1126 void prependScopeBegin(const VarDecl *VD, const Stmt *S,
1131 void appendScopeEnd(const VarDecl *VD, const Stmt *S, BumpVectorContext &C) {
1135 void prependScopeEnd(const VarDecl *VD, const Stmt *S, BumpVectorContext &C) {
1151 void appendAutomaticObjDtor(VarDecl *VD, Stmt *S, BumpVectorContext &C) {
1155 void appendLifetimeEnds(VarDecl *VD, Stmt *S, BumpVectorContext &C) {
1159 void appendLoopExit(const Stmt *LoopStmt, BumpVectorContext &C) {
1175 iterator insertAutomaticObjDtor(iterator I, VarDecl *VD, Stmt *S) {
1188 iterator insertLifetimeEnds(iterator I, VarDecl *VD, Stmt *S) {
1200 iterator insertScopeEnd(iterator I, VarDecl *VD, Stmt *S) {
1233 std::bitset<Stmt::lastStmtConstant> alwaysAddMask;
1236 using ForcedBlkExprs = llvm::DenseMap<const Stmt *, const CFGBlock *>;
1257 bool alwaysAdd(const Stmt *stmt) const {
1261 BuildOptions &setAlwaysAdd(Stmt::StmtClass stmtClass, bool val = true) {
1273 static std::unique_ptr<CFG> buildCFG(const Decl *D, Stmt *AST, ASTContext *C,
1461 using SimpleType = ::clang::Stmt *;
tools/clang/include/clang/Analysis/CFGStmtMap.h 41 CFGBlock *getBlock(Stmt * S);
43 const CFGBlock *getBlock(const Stmt * S) const {
tools/clang/include/clang/Analysis/CallGraph.h 130 bool TraverseStmt(Stmt *S) { return true; }
tools/clang/include/clang/Analysis/CloneDetection.h 37 const Stmt *S;
68 StmtSequence(const Stmt *Stmt, const Decl *D);
73 typedef const Stmt *const *iterator;
84 const Stmt *front() const {
92 const Stmt *back() const {
358 const Stmt *Mention;
360 VariableOccurence(size_t KindID, const Stmt *Mention)
373 void addVariableOccurence(const VarDecl *VarDecl, const Stmt *Mention);
376 void addVariables(const Stmt *S);
382 for (const Stmt *S : Sequence)
395 const Stmt *Mention;
400 SuspiciousCloneInfo(const VarDecl *Variable, const Stmt *Mention,
tools/clang/include/clang/Analysis/CodeInjector.h 40 virtual Stmt *getBody(const FunctionDecl *D) = 0;
41 virtual Stmt *getBody(const ObjCMethodDecl *D) = 0;
tools/clang/include/clang/Analysis/ConstructionContext.h 136 const Stmt *getStmt() const {
141 const Stmt *getStmtOrNull() const {
tools/clang/include/clang/Analysis/PathDiagnostic.h 161 const Stmt *S = nullptr;
182 PathDiagnosticLocation(const Stmt *s, const SourceManager &sm,
229 static PathDiagnosticLocation createBegin(const Stmt *S,
237 static PathDiagnosticLocation createEnd(const Stmt *S,
286 getValidSourceLocation(const Stmt *S, LocationOrAnalysisDeclContext LAC,
309 const Stmt *asStmt() const { assert(isValid()); return S; }
310 const Stmt *getStmtOrNull() const {
tools/clang/include/clang/Analysis/ProgramPoint.h 220 static ProgramPoint getProgramPoint(const Stmt *S, ProgramPoint::Kind K,
259 const Stmt *getTerminator() const {
273 StmtPoint(const Stmt *S, const void *p2, Kind k, const LocationContext *L,
279 const Stmt *getStmt() const { return (const Stmt*) getData1(); }
297 PreStmt(const Stmt *S, const LocationContext *L, const ProgramPointTag *tag,
298 const Stmt *SubStmt = nullptr)
301 const Stmt *getSubStmt() const { return (const Stmt*) getData2(); }
314 PostStmt(const Stmt *S, const void *data, Kind k, const LocationContext *L,
319 explicit PostStmt(const Stmt *S, Kind k, const LocationContext *L,
323 explicit PostStmt(const Stmt *S, const LocationContext *L,
361 PostCondition(const Stmt *S, const LocationContext *L,
376 LocationCheck(const Stmt *S, const LocationContext *L,
390 PreLoad(const Stmt *S, const LocationContext *L,
404 PreStore(const Stmt *S, const LocationContext *L,
418 PostLoad(const Stmt *S, const LocationContext *L,
436 PostStore(const Stmt *S, const LocationContext *L, const void *Loc,
459 PostLValue(const Stmt *S, const LocationContext *L,
475 PreStmtPurgeDeadSymbols(const Stmt *S, const LocationContext *L,
491 PostStmtPurgeDeadSymbols(const Stmt *S, const LocationContext *L,
616 PostAllocatorCall(const Stmt *S, const LocationContext *L,
632 CallEnter(const Stmt *stmt, const StackFrameContext *calleeCtx,
636 const Stmt *getCallExpr() const {
715 LoopExit(const Stmt *LoopStmt, const LocationContext *LC)
718 const Stmt *getLoopStmt() const {
tools/clang/include/clang/Parse/Parser.h 1930 typedef SmallVector<Stmt*, 32> StmtVector;
tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h 82 Stmt *GetExternalDeclStmt(uint64_t Offset) override;
tools/clang/include/clang/Sema/Ownership.h 217 template <typename T> T *getAs() { return static_cast<T*>(get()); }
264 using StmtResult = ActionResult<Stmt *>;
274 using MultiStmtArg = MutableArrayRef<Stmt *>;
293 inline Stmt *AssertSuccess(StmtResult R) {
tools/clang/include/clang/Sema/ScopeInfo.h 88 llvm::TinyPtrVector<const Stmt*> Stmts;
91 ArrayRef<const Stmt *> Stmts)
197 llvm::SmallMapVector<ParmVarDecl *, Stmt *, 4> CoroutineParameterMoves;
200 std::pair<Stmt *, Stmt *> CoroutineSuspends;
200 std::pair<Stmt *, Stmt *> CoroutineSuspends;
480 void setCoroutineSuspends(Stmt *Initial, Stmt *Final) {
480 void setCoroutineSuspends(Stmt *Initial, Stmt *Final) {
tools/clang/include/clang/Sema/Sema.h 2318 void computeNRVO(Stmt *Body, sema::FunctionScopeInfo *Scope);
2319 Decl *ActOnFinishFunctionBody(Decl *Decl, Stmt *Body);
2320 Decl *ActOnFinishFunctionBody(Decl *Decl, Stmt *Body, bool IsInstantiation);
2339 void DiagnoseInvalidJumps(Stmt *Body);
3760 StmtResult ProcessStmtAttributes(Stmt *Stmt,
4051 ArrayRef<Stmt *> Elts, bool isStmtExpr);
4089 void ActOnCaseStmtBody(Stmt *CaseStmt, Stmt *SubStmt);
4089 void ActOnCaseStmtBody(Stmt *CaseStmt, Stmt *SubStmt);
4093 Stmt *SubStmt, Scope *CurScope);
4095 SourceLocation ColonLoc, Stmt *SubStmt);
4099 Stmt *SubStmt);
4103 Stmt *InitStmt,
4104 ConditionResult Cond, Stmt *ThenVal,
4105 SourceLocation ElseLoc, Stmt *ElseVal);
4107 Stmt *InitStmt,
4108 ConditionResult Cond, Stmt *ThenVal,
4109 SourceLocation ElseLoc, Stmt *ElseVal);
4111 Stmt *InitStmt,
4114 Stmt *Switch, Stmt *Body);
4114 Stmt *Switch, Stmt *Body);
4116 Stmt *Body);
4117 StmtResult ActOnDoStmt(SourceLocation DoLoc, Stmt *Body,
4123 Stmt *First,
4127 Stmt *Body);
4131 Stmt *First, Expr *collection,
4133 StmtResult FinishObjCForCollectionStmt(Stmt *ForCollection, Stmt *Body);
4133 StmtResult FinishObjCForCollectionStmt(Stmt *ForCollection, Stmt *Body);
4148 Stmt *InitStmt,
4149 Stmt *LoopVar,
4155 Stmt *InitStmt,
4157 Stmt *RangeDecl, Stmt *Begin, Stmt *End,
4157 Stmt *RangeDecl, Stmt *Begin, Stmt *End,
4157 Stmt *RangeDecl, Stmt *Begin, Stmt *End,
4159 Stmt *LoopVarDecl,
4162 StmtResult FinishCXXForRangeStmt(Stmt *ForRange, Stmt *Body);
4162 StmtResult FinishCXXForRangeStmt(Stmt *ForRange, Stmt *Body);
4180 StmtResult ActOnCapturedRegionEnd(Stmt *S);
4245 Decl *Parm, Stmt *Body);
4247 StmtResult ActOnObjCAtFinallyStmt(SourceLocation AtLoc, Stmt *Body);
4249 StmtResult ActOnObjCAtTryStmt(SourceLocation AtLoc, Stmt *Try,
4250 MultiStmtArg Catch, Stmt *Finally);
4259 Stmt *SynchBody);
4261 StmtResult ActOnObjCAutoreleasePoolStmt(SourceLocation AtLoc, Stmt *Body);
4271 Decl *ExDecl, Stmt *HandlerBlock);
4272 StmtResult ActOnCXXTryBlock(SourceLocation TryLoc, Stmt *TryBlock,
4273 ArrayRef<Stmt *> Handlers);
4276 SourceLocation TryLoc, Stmt *TryBlock,
4277 Stmt *Handler);
4280 Stmt *Block);
4283 StmtResult ActOnFinishSEHFinallyBlock(SourceLocation Loc, Stmt *Block);
4296 void DiagnoseUnusedExprResult(const Stmt *S);
4307 const Stmt *Body,
4312 void DiagnoseEmptyLoopBody(const Stmt *S,
4313 const Stmt *PossibleBody);
4497 bool DiagRuntimeBehavior(SourceLocation Loc, const Stmt *Statement,
4501 bool DiagRuntimeBehavior(SourceLocation Loc, ArrayRef<const Stmt*> Stmts,
4864 ExprResult ActOnStmtExpr(SourceLocation LPLoc, Stmt *SubStmt,
4948 Stmt *Nested);
4952 Stmt *Nested);
4971 ExprResult ActOnBlockStmtExpr(SourceLocation CaretLoc, Stmt *Body,
5763 Stmt *MaybeCreateStmtWithCleanups(Stmt *SubStmt);
5763 Stmt *MaybeCreateStmtWithCleanups(Stmt *SubStmt);
5776 StmtResult ActOnFinishFullStmt(Stmt *Stmt);
6076 ExprResult ActOnLambdaExpr(SourceLocation StartLoc, Stmt *Body,
8359 StmtResult SubstStmt(Stmt *S,
9170 void CheckCompletedCoroutineBody(FunctionDecl *FD, Stmt *&Body);
9389 void EndOpenMPDSABlock(Stmt *CurDirective);
9395 void ActOnOpenMPLoopInitialization(SourceLocation ForLoc, Stmt *Init);
9505 Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc);
9509 Stmt *AStmt,
9517 ActOnOpenMPSimdDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
9523 ActOnOpenMPForDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
9529 ActOnOpenMPForSimdDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
9535 Stmt *AStmt, SourceLocation StartLoc,
9539 StmtResult ActOnOpenMPSectionDirective(Stmt *AStmt, SourceLocation StartLoc,
9544 Stmt *AStmt, SourceLocation StartLoc,
9548 StmtResult ActOnOpenMPMasterDirective(Stmt *AStmt, SourceLocation StartLoc,
9554 Stmt *AStmt, SourceLocation StartLoc,
9559 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9564 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9569 Stmt *AStmt,
9575 Stmt *AStmt, SourceLocation StartLoc,
9588 Stmt *AStmt, SourceLocation StartLoc,
9597 Stmt *AStmt, SourceLocation StartLoc,
9602 Stmt *AStmt, SourceLocation StartLoc,
9607 Stmt *AStmt, SourceLocation StartLoc,
9612 Stmt *AStmt, SourceLocation StartLoc,
9619 Stmt *AStmt);
9625 Stmt *AStmt);
9629 Stmt *AStmt,
9635 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9640 Stmt *AStmt, SourceLocation StartLoc,
9655 ActOnOpenMPTaskLoopDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
9661 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9666 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9671 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9676 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9681 ActOnOpenMPDistributeDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
9688 Stmt *AStmt);
9692 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9697 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9702 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9707 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9712 ActOnOpenMPTargetSimdDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
9718 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9723 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9728 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9733 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9738 Stmt *AStmt,
9744 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9749 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9754 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9759 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
tools/clang/include/clang/Serialization/ASTReader.h 1149 SmallVector<Stmt *, 16> StmtStack;
1205 Stmt *ReadStmtFromStream(ModuleFile &F);
1903 Stmt *GetExternalDeclStmt(uint64_t Offset) override;
2268 Stmt *ReadStmt(ModuleFile &F);
2274 Stmt *ReadSubStmt() {
2465 Stmt *readStmt() { return Reader->ReadStmt(*F); }
2471 Stmt *readSubStmt() { return Reader->ReadSubStmt(); }
tools/clang/include/clang/Serialization/ASTWriter.h 295 llvm::DenseSet<Stmt *> ParentStmts;
299 llvm::DenseMap<Stmt *, uint64_t> SubStmtEntries;
457 void WriteSubStmt(Stmt *S);
754 SmallVector<Stmt *, 16> StmtsToEmit;
839 void AddStmt(Stmt *S) {
tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h 29 std::string printStmt(const Stmt *S) {
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 358 const Stmt *getStmt() const;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h 119 const Expr *getDerefExpr(const Stmt *S);
209 static const Expr *getNilReceiver(const Stmt *S, const ExplodedNode *N);
239 VisitTerminator(const Stmt *Term, const ExplodedNode *N,
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h 84 static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) {
85 ((const CHECKER *)checker)->checkPreStmt(cast<STMT>(S), C);
88 static bool _handlesStmt(const Stmt *S) {
89 return isa<STMT>(S);
103 static void _checkStmt(void *checker, const Stmt *S, CheckerContext &C) {
107 static bool _handlesStmt(const Stmt *S) {
197 const SVal &location, bool isLoad, const Stmt *S,
213 const SVal &location, const SVal &val, const Stmt *S,
272 static void _checkBranchCondition(void *checker, const Stmt *Condition,
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h 207 const Stmt *S,
220 const Stmt *S,
229 const Stmt *S, ExprEngine &Eng,
291 const Stmt *NodeEx,
292 const Stmt *BoundEx,
299 const Stmt *S, ExprEngine &Eng,
320 void runCheckersForBranchCondition(const Stmt *condition,
346 SymbolReaper &SymReaper, const Stmt *S,
442 using CheckStmtFunc = CheckerFn<void (const Stmt *, CheckerContext &)>;
451 CheckerFn<void (const SVal &location, bool isLoad, const Stmt *S,
455 CheckerFn<void (const SVal &location, const SVal &val, const Stmt *S,
467 CheckerFn<void (const Stmt *, CheckerContext &)>;
501 using HandlesStmtFunc = bool (*)(const Stmt *D);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h 182 SVal getSVal(const Stmt *S) const {
369 static bool isCallStmt(const Stmt *S);
781 CXXDestructorCall(const CXXDestructorDecl *DD, const Stmt *Trigger,
1209 getCall(const Stmt *S, ProgramStateRef State,
1229 getCXXDestructorCall(const CXXDestructorDecl *DD, const Stmt *Trigger,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h 144 SVal getSVal(const Stmt *S) const {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h 28 bool containsMacro(const Stmt *S);
29 bool containsEnum(const Stmt *S);
30 bool containsStaticLocal(const Stmt *S);
31 bool containsBuiltinOffsetOf(const Stmt *S);
32 template <class T> bool containsStmt(const Stmt *S) {
36 for (const Stmt *Child : S->children())
44 parseAssignment(const Stmt *S);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h 115 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B,
115 void HandleBranch(const Stmt *Cond, const Stmt *Term, const CFGBlock *B,
407 ExplodedNode *generateNode(const Stmt *S,
417 ExplodedNode *generateSink(const Stmt *S,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h 35 class EnvironmentEntry : public std::pair<const Stmt *,
38 EnvironmentEntry(const Stmt *s, const LocationContext *L);
40 const Stmt *getStmt() const { return first; }
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h 177 SVal getSVal(const Stmt *S) const {
276 const Stmt *getStmtForDiagnostics() const;
282 const Stmt *getNextStmtForDiagnostics() const;
288 const Stmt *getPreviousStmtForDiagnostics() const;
294 const Stmt *getCurrentOrPreviousStmtForDiagnostics() const;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h 208 const Stmt *getStmt() const;
266 const Stmt *ReferenceStmt, const LocationContext *LC,
267 const Stmt *DiagnosticStmt = nullptr,
275 void ProcessStmt(const Stmt *S, ExplodedNode *Pred);
277 void ProcessLoopExit(const Stmt* S, ExplodedNode *Pred);
303 void processBranch(const Stmt *Condition,
413 void Visit(const Stmt *S, ExplodedNode *Pred, ExplodedNodeSet &Dst);
531 const Stmt *S, bool IsBaseDtor,
611 void evalBind(ExplodedNodeSet &Dst, const Stmt *StoreE, ExplodedNode *Pred,
695 const Stmt *NodeEx, /* This will eventually be a CFGStmt */
696 const Stmt *BoundEx,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h 39 ProgramStateRef updateLoopStack(const Stmt *LoopStmt, ASTContext &ASTCtx,
44 ProgramStateRef processLoopEnd(const Stmt *LoopStmt, ProgramStateRef State);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h 30 unsigned BlockCount, const Stmt *LoopStmt);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h 237 LLVM_NODISCARD ProgramStateRef BindExpr(const Stmt *S,
327 SVal getSVal(const Stmt *S, const LocationContext *LCtx) const;
329 SVal getSValAsScalarOrLoc(const Stmt *Ex, const LocationContext *LCtx) const;
757 inline SVal ProgramState::getSVal(const Stmt *Ex,
764 ProgramState::getSValAsScalarOrLoc(const Stmt *S,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h 179 const SymbolConjured* conjureSymbol(const Stmt *stmt,
215 DefinedOrUnknownSVal conjureSymbolVal(const Stmt *stmt,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 74 virtual void processBranch(const Stmt *Condition,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h 76 const Stmt *S;
83 SymbolConjured(SymbolID sym, const Stmt *s, const LocationContext *lctx,
96 const Stmt *getStmt() const { return S; }
104 static void Profile(llvm::FoldingSetNodeID& profile, const Stmt *S,
203 const Stmt *S;
210 SymbolMetadata(SymbolID sym, const MemRegion* r, const Stmt *s, QualType t,
222 const Stmt *getStmt() const { return S; }
232 const Stmt *S, QualType T, const LocationContext *LCtx,
486 const SymbolConjured* conjureSymbol(const Stmt *E,
508 const SymbolMetadata *getMetadataSymbol(const MemRegion *R, const Stmt *S,
564 const Stmt *Loc;
577 SymbolReaper(const StackFrameContext *Ctx, const Stmt *s,
585 bool isLive(const Stmt *ExprVal, const LocationContext *LCtx) const;
tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h 43 ParseModelFileAction(llvm::StringMap<Stmt *> &Bodies);
51 llvm::StringMap<Stmt *> &Bodies;
tools/clang/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h 33 ModelConsumer(llvm::StringMap<Stmt *> &Bodies);
38 llvm::StringMap<Stmt *> &Bodies;
tools/clang/include/clang/Tooling/FixIt.h 43 template <typename T> CharSourceRange getSourceRange(const T &Node) {
50 StringRef getText(const T &Node, const ASTContext &Context) {
62 FixItHint createReplacement(const D &Destination, const S &Source,
62 FixItHint createReplacement(const D &Destination, const S &Source,
tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h 109 const Stmt *operator[](size_t I) const {
112 return SelectedNode.get().Node.get<Stmt>();
114 return SelectedNode.get().Children[I].Node.get<Stmt>();
tools/clang/include/clang/Tooling/Refactoring/Extract/SourceExtraction.h 34 static ExtractionSemicolonPolicy compute(const Stmt *S,
tools/clang/lib/ARCMigrate/Internals.h 64 void removeStmt(Stmt *S);
67 void replaceStmt(Stmt *S, StringRef text);
tools/clang/lib/ARCMigrate/ObjCMT.cpp 359 for (Stmt *SubStmt : E->children())
377 bool TraverseStmt(Stmt *S) {
tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp 78 void transformBody(Stmt *body, Decl *ParentD) {
128 Stmt::child_iterator retI = scope.End;
166 for (Stmt::child_iterator
168 Stmt *child = getEssential(*I);
217 void clearUnavailableDiags(Stmt *S) {
227 Stmt::child_iterator Begin;
228 Stmt::child_iterator End;
236 Stmt::child_iterator rangeS = Begin;
240 Stmt::child_iterator rangeE = Begin;
241 for (Stmt::child_iterator I = rangeS; I != End; ++I)
301 Stmt::child_iterator SI = scope.End, SE = compoundS->body_end();
340 Stmt::child_iterator I = scope.Begin;
372 bool isPoolDrain(VarDecl *poolVar, Stmt *S) {
404 static Stmt *getEssential(Stmt *S) {
404 static Stmt *getEssential(Stmt *S) {
412 Stmt *Body;
tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp 90 for (auto *I : S->body())
165 for (auto *I : S->body())
173 void check(Stmt *S) {
186 for (auto *I : body->body())
tools/clang/lib/ARCMigrate/TransProtectedScope.cpp 66 Stmt *Parent = getCaseParent(Curr);
87 Stmt *getCaseParent(SwitchCase *S) {
88 Stmt *Parent = PMap.getParent(S);
tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp 36 Stmt *Body;
53 void transformBody(Stmt *body, Decl *ParentD) {
191 Stmt *nextStmt = getNextStmt(E);
212 Stmt *prevStmt, *nextStmt;
219 bool isPlusOneAssignToVar(Stmt *S, Decl *RefD) {
240 Stmt *getNextStmt(Expr *E) {
244 std::pair<Stmt *, Stmt *> getPreviousAndNextStmt(Expr *E) {
244 std::pair<Stmt *, Stmt *> getPreviousAndNextStmt(Expr *E) {
245 Stmt *prevStmt = nullptr, *nextStmt = nullptr;
249 Stmt *OuterS = E, *InnerS;
261 Stmt::child_iterator currChildS = OuterS->child_begin();
262 Stmt::child_iterator childE = OuterS->child_end();
263 Stmt::child_iterator prevChildS = childE;
343 Stmt *S = Msg;
355 Stmt::child_range StmtExprChild = StmtE->children();
362 Stmt::child_range CompStmtChild = CompS->children();
412 Stmt *S = E;
432 Stmt *parent = StmtMap->getParent(E);
tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp 64 Stmt *Body;
73 void transformBody(Stmt *body, Decl *ParentD) {
371 Stmt *parent = E;
tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp 34 Stmt *Body;
43 void transformBody(Stmt *body, Decl *ParentD) {
tools/clang/lib/ARCMigrate/TransformActions.cpp 48 Stmt *S;
113 llvm::DenseSet<Stmt *> StmtRemovals;
136 void removeStmt(Stmt *S);
139 void replaceStmt(Stmt *S, StringRef text);
159 void commitRemoveStmt(Stmt *S);
312 void TransformActionsImpl::removeStmt(Stmt *S) {
351 void TransformActionsImpl::replaceStmt(Stmt *S, StringRef text) {
450 void TransformActionsImpl::commitRemoveStmt(Stmt *S) {
642 void TransformActions::removeStmt(Stmt *S) {
655 void TransformActions::replaceStmt(Stmt *S, StringRef text) {
tools/clang/lib/ARCMigrate/Transforms.cpp 257 for (auto *I : S->body())
286 void mark(Stmt *S) {
300 void trans::clearRefsIn(Stmt *S, ExprSet &refs) {
304 void trans::collectRefs(ValueDecl *D, Stmt *S, ExprSet &refs) {
308 void trans::collectRemovables(Stmt *S, ExprSet &exprs) {
337 bool TraverseStmt(Stmt *rootS) {
tools/clang/lib/ARCMigrate/Transforms.h 48 Stmt *TopStmt;
51 BodyContext(MigrationContext &MigrateCtx, Stmt *S)
56 Stmt *getTopStmt() { return TopStmt; }
193 bool TraverseStmt(Stmt *rootS) {
207 void clearRefsIn(Stmt *S, ExprSet &refs);
214 void collectRefs(ValueDecl *D, Stmt *S, ExprSet &refs);
216 void collectRemovables(Stmt *S, ExprSet &exprs);
tools/clang/lib/AST/ASTContext.cpp 898 llvm::PointerUnion4<const Decl *, const Stmt *,
905 llvm::PointerUnion4<const Decl *, const Stmt *,
916 if (const auto *S = U.dyn_cast<const Stmt *>())
916 if (const auto *S = U.dyn_cast<const Stmt *>())
10445 else if (const auto *S = ParentStack.back().get<Stmt>())
10445 else if (const auto *S = ParentStack.back().get<Stmt>())
10482 bool TraverseStmt(Stmt *StmtNode) {
tools/clang/lib/AST/ASTImporter.cpp 79 using ExpectedStmt = llvm::Expected<Stmt *>;
162 Expected<T *> import(T *From) {
162 Expected<T *> import(T *From) {
166 return cast_or_null<T>(*ToOrErr);
170 Expected<T *> import(const T *From) {
170 Expected<T *> import(const T *From) {
506 ExpectedStmt VisitStmt(Stmt *S);
2985 if (Stmt *FromBody = FromFD->getBody()) {
5639 ExpectedStmt ASTNodeImporter::VisitStmt(Stmt *S) {
5749 SmallVector<Stmt *, 8> ToStmts(S->size());
5775 Stmt *ToSubStmt;
5793 Stmt *ToSubStmt;
5807 Stmt *ToSubStmt;
5838 Stmt *ToInit, *ToThen, *ToElse;
5857 Stmt *ToInit, *ToBody;
5893 Stmt *ToBody;
5908 Stmt *ToBody;
5924 Stmt *ToInit;
5927 Stmt *ToBody;
6002 Stmt *ToHandlerBlock;
6018 SmallVector<Stmt *, 1> ToHandlers(S->getNumHandlers());
6044 Stmt *ToInit, *ToBody;
6064 Stmt *ToElement, *ToBody;
6085 Stmt *ToCatchBody;
6110 Stmt *ToTryBody, *ToFinallyStmt;
6113 SmallVector<Stmt *, 1> ToCatchStmts(S->getNumCatchStmts());
6137 Stmt *ToSynchBody;
6759 case Stmt::CStyleCastExprClass: {
6773 case Stmt::CXXFunctionalCastExprClass: {
6787 case Stmt::ObjCBridgedCastExprClass: {
8119 if (ExpectedStmt ToSOrErr = Import(cast_or_null<Stmt>(FromE)))
8125 Expected<Stmt *> ASTImporter::Import(Stmt *FromS) {
8125 Expected<Stmt *> ASTImporter::Import(Stmt *FromS) {
8130 llvm::DenseMap<Stmt *, Stmt *>::iterator Pos = ImportedStmts.find(FromS);
8130 llvm::DenseMap<Stmt *, Stmt *>::iterator Pos = ImportedStmts.find(FromS);
tools/clang/lib/AST/ASTTypeTraits.cpp 91 ASTNodeKind ASTNodeKind::getFromNode(const Stmt &S) {
93 case Stmt::NoStmtClass: return NKI_None;
146 else if (const Stmt *S = get<Stmt>())
146 else if (const Stmt *S = get<Stmt>())
157 else if (const Stmt *S = get<Stmt>())
157 else if (const Stmt *S = get<Stmt>())
174 if (const Stmt *S = get<Stmt>())
174 if (const Stmt *S = get<Stmt>())
tools/clang/lib/AST/Decl.cpp 2223 if (auto *S = Init.dyn_cast<Stmt *>())
2223 if (auto *S = Init.dyn_cast<Stmt *>())
2229 Stmt **VarDecl::getInitAddress() {
2335 Eval->Value = Init.get<Stmt *>();
2740 return cast_or_null<Expr>(Init.get<Stmt *>());
2826 Stmt *S = getBody();
2849 Stmt *FunctionDecl::getBody(const FunctionDecl *&Definition) const {
2859 void FunctionDecl::setBody(Stmt *B) {
4667 Stmt *CapturedDecl::getBody() const { return BodyAndNothrow.getPointer(); }
4668 void CapturedDecl::setBody(Stmt *B) { BodyAndNothrow.setPointer(B); }
tools/clang/lib/AST/DeclBase.cpp 906 if (Stmt *Body = getBody())
tools/clang/lib/AST/DeclObjC.cpp 851 Stmt *ObjCMethodDecl::getBody() const {
980 if (Stmt *Body = getBody())
tools/clang/lib/AST/Expr.cpp 223 case Stmt::NoStmtClass: llvm_unreachable("statement without class");
634 void *Mem = Ctx.Allocate(totalSizeToAlloc<Stmt *>(HasFunctionName),
641 void *Mem = Ctx.Allocate(totalSizeToAlloc<Stmt *>(HasFunctionName),
2329 if (Stmt *S = *I) {
2347 if (Stmt *S = *I) {
2367 const Stmt *BlockExpr::getBody() const {
2370 Stmt *BlockExpr::getBody() {
3616 for (const Stmt *SubStmt : children())
4107 SubExprs = new (C) Stmt*[args.size()];
4126 SubExprs = new (C) Stmt*[NumExprs];
4150 getTrailingObjects<Stmt *>()[ControllingIndex] = ControllingExpr;
4152 getTrailingObjects<Stmt *>() + AssocExprStartIndex);
4174 getTrailingObjects<Stmt *>()[ControllingIndex] = ControllingExpr;
4176 getTrailingObjects<Stmt *>() + AssocExprStartIndex);
4191 totalSizeToAlloc<Stmt *, TypeSourceInfo *>(1 + NumAssocs, NumAssocs),
4205 totalSizeToAlloc<Stmt *, TypeSourceInfo *>(1 + NumAssocs, NumAssocs),
4216 totalSizeToAlloc<Stmt *, TypeSourceInfo *>(1 + NumAssocs, NumAssocs),
4304 void *Mem = C.Allocate(totalSizeToAlloc<Stmt *>(IndexExprs.size() + 1),
4313 void *Mem = C.Allocate(totalSizeToAlloc<Stmt *>(NumIndexExprs + 1),
4434 getTrailingObjects<Stmt *>()[I] = Exprs[I];
4447 void *Mem = Ctx.Allocate(totalSizeToAlloc<Stmt *>(Exprs.size()),
4455 Ctx.Allocate(totalSizeToAlloc<Stmt *>(NumExprs), alignof(ParenListExpr));
4541 Stmt::child_range UnaryExprOrTypeTraitExpr::children() {
4547 Stmt::const_child_range UnaryExprOrTypeTraitExpr::children() const {
tools/clang/lib/AST/ExprCXX.cpp 205 getTrailingObjects<Stmt *>()[arraySizeOffset()] = *ArraySize;
216 getTrailingObjects<Stmt *>()[initExprOffset()] = Initializer;
227 getTrailingObjects<Stmt *>()[placementNewArgsOffset() + I] =
270 Ctx.Allocate(totalSizeToAlloc<Stmt *, SourceRange>(
284 Ctx.Allocate(totalSizeToAlloc<Stmt *, SourceRange>(
1113 Stmt **TrailingArgs = getTrailingArgs();
1206 Stmt **Stored = getStoredStmts();
1224 unsigned Size = totalSizeToAlloc<Stmt *>(Captures.size() + 1);
1234 unsigned Size = totalSizeToAlloc<Stmt *>(NumCaptures + 1);
1666 ES->Temporary = State.get<Stmt *>();
tools/clang/lib/AST/ExprClassification.cpp 107 case Stmt::NoStmtClass:
tools/clang/lib/AST/ExprConstant.cpp 978 bool nextStep(const Stmt *S) {
4363 const Stmt *S,
4368 const Stmt *Body,
4398 if (const Stmt *Init = SS->getInit()) {
4465 const Stmt *S, const SwitchCase *Case) {
4473 case Stmt::CompoundStmtClass:
4477 case Stmt::LabelStmtClass:
4478 case Stmt::AttributedStmtClass:
4479 case Stmt::DoStmtClass:
4482 case Stmt::CaseStmtClass:
4483 case Stmt::DefaultStmtClass:
4488 case Stmt::IfStmtClass: {
4499 if (const Stmt *Init = IS->getInit()) {
4528 case Stmt::WhileStmtClass: {
4536 case Stmt::ForStmtClass: {
4542 if (const Stmt *Init = FS->getInit()) {
4562 case Stmt::DeclStmtClass: {
4600 case Stmt::NullStmtClass:
4603 case Stmt::DeclStmtClass: {
4616 case Stmt::ReturnStmtClass: {
4627 case Stmt::CompoundStmtClass: {
4631 for (const auto *BI : CS->body()) {
4646 case Stmt::IfStmtClass: {
4651 if (const Stmt *Init = IS->getInit()) {
4663 if (const Stmt *SubStmt = Cond ? IS->getThen() : IS->getElse()) {
4674 case Stmt::WhileStmtClass: {
4697 case Stmt::DoStmtClass: {
4714 case Stmt::ForStmtClass: {
4753 case Stmt::CXXForRangeStmtClass: {
4828 case Stmt::SwitchStmtClass:
4831 case Stmt::ContinueStmtClass:
4834 case Stmt::BreakStmtClass:
4837 case Stmt::LabelStmtClass:
4840 case Stmt::AttributedStmtClass:
4846 case Stmt::CaseStmtClass:
4847 case Stmt::DefaultStmtClass:
4849 case Stmt::CXXTryStmtClass:
4887 const Stmt *Body) {
5474 ArrayRef<const Expr*> Args, const Stmt *Body,
5833 const Stmt *Body = DD->getBody(Definition);
6694 bool VisitStmt(const Stmt *) {
6989 Stmt *Body = FD->getBody(Definition);
tools/clang/lib/AST/ExprObjC.cpp 370 Stmt::child_range ObjCMessageExpr::children() {
371 Stmt **begin;
380 Stmt::const_child_range ObjCMessageExpr::children() const {
tools/clang/lib/AST/ExternalASTSource.cpp 94 Stmt *ExternalASTSource::GetExternalDeclStmt(uint64_t Offset) {
tools/clang/lib/AST/Interp/ByteCodeEmitter.h 58 bool bail(const Stmt *S) { return bail(S->getBeginLoc()); }
tools/clang/lib/AST/Interp/ByteCodeGenError.h 24 ByteCodeGenError(const Stmt *S) : ByteCodeGenError(S->getBeginLoc()) {}
tools/clang/lib/AST/Interp/ByteCodeStmtGen.cpp 103 if (auto *Body = F->getBody())
115 bool ByteCodeStmtGen<Emitter>::visitStmt(const Stmt *S) {
117 case Stmt::CompoundStmtClass:
119 case Stmt::DeclStmtClass:
121 case Stmt::ReturnStmtClass:
123 case Stmt::IfStmtClass:
125 case Stmt::NullStmtClass:
139 for (auto *InnerStmt : CompoundStmt->body())
204 if (const Stmt *Else = IS->getElse()) {
tools/clang/lib/AST/Interp/ByteCodeStmtGen.h 60 bool visitStmt(const Stmt *S);
tools/clang/lib/AST/Interp/EvalEmitter.h 60 bool bail(const Stmt *S) { return bail(S->getBeginLoc()); }
tools/clang/lib/AST/Interp/Source.cpp 18 if (const Stmt *S = asStmt())
26 if (auto *S = Source.dyn_cast<const Stmt *>())
tools/clang/lib/AST/Interp/Source.h 84 SourceInfo(const Stmt *E) : Source(E) {}
89 const Stmt *asStmt() const { return Source.dyn_cast<const Stmt *>(); }
89 const Stmt *asStmt() const { return Source.dyn_cast<const Stmt *>(); }
96 llvm::PointerUnion<const Decl *, const Stmt *> Source;
tools/clang/lib/AST/JSONNodeDumper.cpp 45 void JSONNodeDumper::Visit(const Stmt *S) {
tools/clang/lib/AST/ODRHash.cpp 24 void ODRHash::AddStmt(const Stmt *S) {
248 void AddStmt(const Stmt *S) {
577 auto *Body = Function->getBody();
661 void AddStmt(Stmt *S) {
tools/clang/lib/AST/OpenMPClause.cpp 224 static Stmt **getAddrOfExprAsWritten(Stmt *S) {
224 static Stmt **getAddrOfExprAsWritten(Stmt *S) {
236 if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt()))
242 if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt()))
248 if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt()))
254 if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt()))
260 if (Stmt **C = getAddrOfExprAsWritten(getPreInitStmt()))
357 ArrayRef<Expr *> InitVL, Stmt *PreInit) {
405 ArrayRef<Expr *> DstExprs, ArrayRef<Expr *> AssignmentOps, Stmt *PreInit,
478 Stmt *PreInit, Expr *PostUpdate) {
651 ArrayRef<Expr *> RHSExprs, ArrayRef<Expr *> ReductionOps, Stmt *PreInit,
704 ArrayRef<Expr *> RHSExprs, ArrayRef<Expr *> ReductionOps, Stmt *PreInit,
767 ArrayRef<Expr *> TaskgroupDescriptors, Stmt *PreInit, Expr *PostUpdate) {
tools/clang/lib/AST/ParentMap.cpp 22 typedef llvm::DenseMap<Stmt*, Stmt*> MapTy;
22 typedef llvm::DenseMap<Stmt*, Stmt*> MapTy;
29 static void BuildParentMap(MapTy& M, Stmt* S,
35 case Stmt::PseudoObjectExprClass: {
41 for (Stmt *SubStmt : S->children())
55 case Stmt::BinaryConditionalOperatorClass: {
73 case Stmt::OpaqueValueExprClass: {
86 case Stmt::CapturedStmtClass:
87 for (Stmt *SubStmt : S->children()) {
93 if (Stmt *SubStmt = cast<CapturedStmt>(S)->getCapturedStmt()) {
99 for (Stmt *SubStmt : S->children()) {
109 ParentMap::ParentMap(Stmt *S) : Impl(nullptr) {
121 void ParentMap::addStmt(Stmt* S) {
127 void ParentMap::setParent(const Stmt *S, const Stmt *Parent) {
127 void ParentMap::setParent(const Stmt *S, const Stmt *Parent) {
134 Stmt* ParentMap::getParent(Stmt* S) const {
134 Stmt* ParentMap::getParent(Stmt* S) const {
140 Stmt *ParentMap::getParentIgnoreParens(Stmt *S) const {
140 Stmt *ParentMap::getParentIgnoreParens(Stmt *S) const {
145 Stmt *ParentMap::getParentIgnoreParenCasts(Stmt *S) const {
145 Stmt *ParentMap::getParentIgnoreParenCasts(Stmt *S) const {
154 Stmt *ParentMap::getParentIgnoreParenImpCasts(Stmt *S) const {
154 Stmt *ParentMap::getParentIgnoreParenImpCasts(Stmt *S) const {
162 Stmt *ParentMap::getOuterParenParent(Stmt *S) const {
162 Stmt *ParentMap::getOuterParenParent(Stmt *S) const {
163 Stmt *Paren = nullptr;
172 Stmt *P = getParent(E);
173 Stmt *DirectChild = E;
188 case Stmt::DeclStmtClass:
190 case Stmt::BinaryOperatorClass: {
196 case Stmt::ForStmtClass:
198 case Stmt::WhileStmtClass:
200 case Stmt::DoStmtClass:
202 case Stmt::IfStmtClass:
204 case Stmt::IndirectGotoStmtClass:
206 case Stmt::SwitchStmtClass:
208 case Stmt::ObjCForCollectionStmtClass:
210 case Stmt::ReturnStmtClass:
tools/clang/lib/AST/Stmt.cpp 52 } StmtClassInfo[Stmt::lastStmtConstant+1];
54 static StmtClassNameTable &getStmtInfoTableEntry(Stmt::StmtClass E) {
99 getStmtInfoTableEntry(Stmt::NullStmtClass);
103 for (int i = 0; i != Stmt::lastStmtConstant+1; i++) {
109 for (int i = 0; i != Stmt::lastStmtConstant+1; i++) {
133 Stmt *Stmt::IgnoreContainers(bool IgnoreCaptured) {
134 Stmt *S = this;
155 const Stmt *Stmt::stripLabelLikeStatements() const {
156 const Stmt *S = this;
179 typedef Stmt::child_range children_t();
223 Stmt::child_range Stmt::children() {
225 case Stmt::NoStmtClass: llvm_unreachable("statement without class");
244 SourceRange getSourceRangeImpl(const Stmt *stmt,
254 SourceRange getSourceRangeImpl(const Stmt *stmt,
264 case Stmt::NoStmtClass: llvm_unreachable("statement without class");
277 case Stmt::NoStmtClass: llvm_unreachable("statement without class");
289 case Stmt::NoStmtClass: llvm_unreachable("statement without class");
300 return Context.getAllocator().identifyKnownAlignedObject<Stmt>(this);
303 CompoundStmt::CompoundStmt(ArrayRef<Stmt *> Stmts, SourceLocation LB,
311 void CompoundStmt::setStmts(ArrayRef<Stmt *> Stmts) {
318 CompoundStmt *CompoundStmt::Create(const ASTContext &C, ArrayRef<Stmt *> Stmts,
321 C.Allocate(totalSizeToAlloc<Stmt *>(Stmts.size()), alignof(CompoundStmt));
328 C.Allocate(totalSizeToAlloc<Stmt *>(NumStmts), alignof(CompoundStmt));
335 const Stmt *S = this;
357 Stmt *SubStmt) {
475 Stmt **Exprs,
494 this->Exprs = new (C) Stmt*[NumExprs];
768 Exprs = new (C) Stmt*[NumExprs];
809 Exprs = new (C) Stmt*[exprs.size()];
830 Stmt *Init, VarDecl *Var, Expr *Cond, Stmt *Then,
830 Stmt *Init, VarDecl *Var, Expr *Cond, Stmt *Then,
831 SourceLocation EL, Stmt *Else)
864 bool IsConstexpr, Stmt *Init, VarDecl *Var, Expr *Cond,
865 Stmt *Then, SourceLocation EL, Stmt *Else) {
865 Stmt *Then, SourceLocation EL, Stmt *Else) {
870 totalSizeToAlloc<Stmt *, SourceLocation>(
880 totalSizeToAlloc<Stmt *, SourceLocation>(
898 getTrailingObjects<Stmt *>()[varOffset()] = nullptr;
903 getTrailingObjects<Stmt *>()[varOffset()] = new (Ctx)
911 ForStmt::ForStmt(const ASTContext &C, Stmt *Init, Expr *Cond, VarDecl *condVar,
912 Expr *Inc, Stmt *Body, SourceLocation FL, SourceLocation LP,
943 SwitchStmt::SwitchStmt(const ASTContext &Ctx, Stmt *Init, VarDecl *Var,
969 SwitchStmt *SwitchStmt::Create(const ASTContext &Ctx, Stmt *Init, VarDecl *Var,
974 totalSizeToAlloc<Stmt *>(NumMandatoryStmtPtr + HasInit + HasVar),
982 totalSizeToAlloc<Stmt *>(NumMandatoryStmtPtr + HasInit + HasVar),
999 getTrailingObjects<Stmt *>()[varOffset()] = nullptr;
1004 getTrailingObjects<Stmt *>()[varOffset()] = new (Ctx)
1009 Stmt *Body, SourceLocation WL)
1028 Stmt *Body, SourceLocation WL) {
1031 Ctx.Allocate(totalSizeToAlloc<Stmt *>(NumMandatoryStmtPtr + HasVar),
1038 Ctx.Allocate(totalSizeToAlloc<Stmt *>(NumMandatoryStmtPtr + HasVar),
1055 getTrailingObjects<Stmt *>()[varOffset()] = nullptr;
1060 getTrailingObjects<Stmt *>()[varOffset()] = new (Ctx)
1107 totalSizeToAlloc<Stmt *, SourceLocation>(
1116 totalSizeToAlloc<Stmt *, SourceLocation>(
1122 SEHTryStmt::SEHTryStmt(bool IsCXXTry, SourceLocation TryLoc, Stmt *TryBlock,
1123 Stmt *Handler)
1130 SourceLocation TryLoc, Stmt *TryBlock,
1131 Stmt *Handler) {
1143 SEHExceptStmt::SEHExceptStmt(SourceLocation Loc, Expr *FilterExpr, Stmt *Block)
1150 Expr *FilterExpr, Stmt *Block) {
1154 SEHFinallyStmt::SEHFinallyStmt(SourceLocation Loc, Stmt *Block)
1158 Stmt *Block) {
1201 unsigned Size = sizeof(CapturedStmt) + sizeof(Stmt *) * (NumCaptures + 1);
1211 CapturedStmt::CapturedStmt(Stmt *S, CapturedRegionKind Kind,
1223 Stmt **Stored = getStoredStmts();
1241 CapturedStmt *CapturedStmt::Create(const ASTContext &Context, Stmt *S,
1258 unsigned Size = sizeof(CapturedStmt) + sizeof(Stmt *) * (Captures.size() + 1);
1271 unsigned Size = sizeof(CapturedStmt) + sizeof(Stmt *) * (NumCaptures + 1);
1282 Stmt::child_range CapturedStmt::children() {
1287 Stmt::const_child_range CapturedStmt::children() const {
tools/clang/lib/AST/StmtCXX.cpp 26 Stmt *tryBlock, ArrayRef<Stmt *> handlers) {
26 Stmt *tryBlock, ArrayRef<Stmt *> handlers) {
27 const size_t Size = totalSizeToAlloc<Stmt *>(handlers.size() + 1);
34 const size_t Size = totalSizeToAlloc<Stmt *>(numHandlers + 1);
39 CXXTryStmt::CXXTryStmt(SourceLocation tryLoc, Stmt *tryBlock,
40 ArrayRef<Stmt *> handlers)
42 Stmt **Stmts = getStmts();
47 CXXForRangeStmt::CXXForRangeStmt(Stmt *Init, DeclStmt *Range,
50 Stmt *Body, SourceLocation FL,
88 std::size_t Size = totalSizeToAlloc<Stmt *>(
97 std::size_t Size = totalSizeToAlloc<Stmt *>(
111 Stmt **SubStmts = getStoredStmts();
tools/clang/lib/AST/StmtObjC.cpp 20 ObjCForCollectionStmt::ObjCForCollectionStmt(Stmt *Elem, Expr *Collect,
21 Stmt *Body, SourceLocation FCL,
31 ObjCAtTryStmt::ObjCAtTryStmt(SourceLocation atTryLoc, Stmt *atTryStmt,
32 Stmt **CatchStmts, unsigned NumCatchStmts,
33 Stmt *atFinallyStmt)
36 Stmt **Stmts = getStmts();
46 SourceLocation atTryLoc, Stmt *atTryStmt,
47 Stmt **CatchStmts, unsigned NumCatchStmts,
48 Stmt *atFinallyStmt) {
51 (1 + NumCatchStmts + (atFinallyStmt != nullptr)) * sizeof(Stmt *);
61 sizeof(ObjCAtTryStmt) + (1 + NumCatchStmts + HasFinally) * sizeof(Stmt *);
tools/clang/lib/AST/StmtOpenMP.cpp 36 const Stmt *OMPExecutableDirective::getStructuredBlock() const {
96 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel) {
100 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
115 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
122 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
127 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_simd));
158 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_simd));
165 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
170 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_for));
210 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_for));
217 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
223 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_for_simd));
263 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_for_simd));
269 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel) {
273 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
288 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
295 Stmt *AssociatedStmt,
297 unsigned Size = llvm::alignTo(sizeof(OMPSectionDirective), alignof(Stmt *));
298 void *Mem = C.Allocate(Size + sizeof(Stmt *));
307 unsigned Size = llvm::alignTo(sizeof(OMPSectionDirective), alignof(Stmt *));
308 void *Mem = C.Allocate(Size + sizeof(Stmt *));
316 Stmt *AssociatedStmt) {
320 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
334 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
341 Stmt *AssociatedStmt) {
342 unsigned Size = llvm::alignTo(sizeof(OMPMasterDirective), alignof(Stmt *));
343 void *Mem = C.Allocate(Size + sizeof(Stmt *));
351 unsigned Size = llvm::alignTo(sizeof(OMPMasterDirective), alignof(Stmt *));
352 void *Mem = C.Allocate(Size + sizeof(Stmt *));
359 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt) {
363 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
377 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
383 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
388 sizeof(Stmt *) *
428 sizeof(Stmt *) *
435 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
441 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_parallel_for_simd));
481 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_parallel_for_simd));
487 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, bool HasCancel) {
491 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
506 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
513 Stmt *AssociatedStmt, bool HasCancel) {
516 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
530 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
579 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, Expr *ReductionRef) {
582 alignof(Stmt *));
583 void *Mem = C.Allocate(Size + sizeof(Stmt *) + sizeof(Expr *));
597 alignof(Stmt *));
598 void *Mem = C.Allocate(Size + sizeof(Stmt *) + sizeof(Expr *));
606 llvm::alignTo(sizeof(OMPCancellationPointDirective), alignof(Stmt *));
617 llvm::alignTo(sizeof(OMPCancellationPointDirective), alignof(Stmt *));
628 alignof(Stmt *));
642 alignof(Stmt *));
673 Stmt *AssociatedStmt) {
677 C.Allocate(Size + sizeof(Stmt *) + sizeof(OMPClause *) * Clauses.size());
691 C.Allocate(Size + sizeof(Stmt *) + sizeof(OMPClause *) * NumClauses);
697 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt, Expr *X, Expr *V,
702 5 * sizeof(Stmt *));
722 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + 5 * sizeof(Stmt *));
730 Stmt *AssociatedStmt) {
734 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
748 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
754 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt) {
758 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
772 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
778 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
784 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_target_parallel_for));
825 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_target_parallel_for));
831 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt) {
834 sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
847 sizeof(OMPClause *) * N + sizeof(Stmt *));
853 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt) {
856 sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
869 sizeof(OMPClause *) * N + sizeof(Stmt *));
875 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt) {
878 sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
891 sizeof(OMPClause *) * N + sizeof(Stmt *));
899 Stmt *AssociatedStmt) {
903 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
917 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
923 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
929 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_taskloop));
969 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_taskloop));
975 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
980 sizeof(Stmt *) *
1019 sizeof(Stmt *) *
1026 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1032 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_master_taskloop));
1072 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_master_taskloop));
1078 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1084 sizeof(Stmt *) *
1125 sizeof(Stmt *) *
1132 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1138 sizeof(Stmt *) *
1180 sizeof(Stmt *) *
1187 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1192 sizeof(Stmt *) *
1231 sizeof(Stmt *) *
1238 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt) {
1242 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
1256 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
1262 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1268 sizeof(Stmt *) *
1325 sizeof(Stmt *) *
1333 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1339 sizeof(Stmt *) *
1395 sizeof(Stmt *) *
1403 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1409 sizeof(Stmt *) *
1450 sizeof(Stmt *) *
1457 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1463 sizeof(Stmt *) *
1506 sizeof(Stmt *) *
1515 Stmt *AssociatedStmt, const HelperExprs &Exprs) {
1519 sizeof(Stmt *) *
1550 sizeof(Stmt *) *
1557 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1563 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_teams_distribute));
1603 sizeof(Stmt *) * numLoopChildren(CollapsedNum, OMPD_teams_distribute));
1609 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1615 sizeof(Stmt *) *
1656 sizeof(Stmt *) *
1664 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1670 sizeof(Stmt *) *
1727 sizeof(Stmt *) *
1737 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1743 sizeof(Stmt *) *
1800 sizeof(Stmt *) *
1808 ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt) {
1812 C.Allocate(Size + sizeof(OMPClause *) * Clauses.size() + sizeof(Stmt *));
1826 C.Allocate(Size + sizeof(OMPClause *) * NumClauses + sizeof(Stmt *));
1832 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1838 sizeof(Stmt *) *
1881 sizeof(Stmt *) *
1889 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1896 sizeof(Stmt *) *
1955 sizeof(Stmt *) *
1965 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
1972 sizeof(Stmt *) *
2029 sizeof(Stmt *) *
2039 unsigned CollapsedNum, ArrayRef<OMPClause *> Clauses, Stmt *AssociatedStmt,
2045 sizeof(Stmt *) *
2088 sizeof(Stmt *) *
tools/clang/lib/AST/StmtPrinter.cpp 83 void PrintStmt(Stmt *S) {
87 void PrintStmt(Stmt *S, int SubIndent) {
102 void PrintInitStmt(Stmt *S, unsigned PrefixWidth) {
113 void PrintControlledStmt(Stmt *S) {
148 void Visit(Stmt* S) {
154 void VisitStmt(Stmt *Node) LLVM_ATTRIBUTE_UNUSED {
180 for (auto *I : Node->body())
261 if (Stmt *Else = If->getElse()) {
tools/clang/lib/AST/StmtProfile.cpp 38 void VisitStmt(const Stmt *S);
40 virtual void HandleStmtClass(Stmt::StmtClass SC) = 0;
84 void HandleStmtClass(Stmt::StmtClass SC) override {
171 void HandleStmtClass(Stmt::StmtClass SC) override {
172 if (SC == Stmt::UnresolvedLookupExprClass) {
175 ID.AddInteger(Stmt::DeclRefExprClass);
217 void StmtProfiler::VisitStmt(const Stmt *S) {
222 for (const Stmt *SubStmt : S->children()) {
1327 static Stmt::StmtClass DecodeOperatorCall(const CXXOperatorCallExpr *S,
1345 return Stmt::UnaryOperatorClass;
1349 return Stmt::BinaryOperatorClass;
1354 return Stmt::UnaryOperatorClass;
1358 return Stmt::BinaryOperatorClass;
1363 return Stmt::UnaryOperatorClass;
1367 return Stmt::BinaryOperatorClass;
1371 return Stmt::BinaryOperatorClass;
1375 return Stmt::BinaryOperatorClass;
1379 return Stmt::BinaryOperatorClass;
1384 return Stmt::UnaryOperatorClass;
1388 return Stmt::BinaryOperatorClass;
1392 return Stmt::BinaryOperatorClass;
1396 return Stmt::UnaryOperatorClass;
1400 return Stmt::UnaryOperatorClass;
1404 return Stmt::BinaryOperatorClass;
1408 return Stmt::BinaryOperatorClass;
1412 return Stmt::BinaryOperatorClass;
1416 return Stmt::CompoundAssignOperatorClass;
1420 return Stmt::CompoundAssignOperatorClass;
1424 return Stmt::CompoundAssignOperatorClass;
1428 return Stmt::CompoundAssignOperatorClass;
1432 return Stmt::CompoundAssignOperatorClass;
1436 return Stmt::CompoundAssignOperatorClass;
1440 return Stmt::CompoundAssignOperatorClass;
1444 return Stmt::CompoundAssignOperatorClass;
1448 return Stmt::BinaryOperatorClass;
1452 return Stmt::BinaryOperatorClass;
1456 return Stmt::CompoundAssignOperatorClass;
1460 return Stmt::CompoundAssignOperatorClass;
1464 return Stmt::BinaryOperatorClass;
1468 return Stmt::BinaryOperatorClass;
1472 return Stmt::BinaryOperatorClass;
1476 return Stmt::BinaryOperatorClass;
1484 return Stmt::BinaryOperatorClass;
1488 return Stmt::BinaryOperatorClass;
1493 return Stmt::UnaryOperatorClass;
1498 return Stmt::UnaryOperatorClass;
1502 return Stmt::BinaryOperatorClass;
1506 return Stmt::BinaryOperatorClass;
1509 return Stmt::ArraySubscriptExprClass;
1513 return Stmt::UnaryOperatorClass;
1540 Stmt::StmtClass SC = DecodeOperatorCall(S, UnaryOp, BinaryOp);
1545 if (SC == Stmt::UnaryOperatorClass)
1547 else if (SC == Stmt::BinaryOperatorClass ||
1548 SC == Stmt::CompoundAssignOperatorClass)
tools/clang/lib/AST/StmtViz.cpp 34 static std::string getNodeLabel(const Stmt* Node, const Stmt* Graph) {
34 static std::string getNodeLabel(const Stmt* Node, const Stmt* Graph) {
tools/clang/lib/AST/TextNodeDumper.cpp 111 void TextNodeDumper::Visit(const Stmt *Node) {
tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp 108 else if (const Stmt *S = DynNode.get<Stmt>())
108 else if (const Stmt *S = DynNode.get<Stmt>())
139 bool TraverseStmt(Stmt *StmtNode, DataRecursionQueue *Queue = nullptr) {
145 Stmt *StmtToTraverse = StmtNode;
227 bool baseTraverse(const Stmt &StmtNode) {
254 bool match(const T &Node) {
281 bool traverse(const T &Node) {
282 static_assert(IsBaseType<T>::value,
384 bool TraverseStmt(Stmt *StmtNode, DataRecursionQueue *Queue = nullptr);
488 } else if (auto *N = Node.get<Stmt>()) {
505 template <typename T> void match(const T &Node) {
604 void matchDispatch(const Stmt *Node) {
922 bool MatchASTVisitor::TraverseStmt(Stmt *StmtNode, DataRecursionQueue *Queue) {
1061 } else if (NodeMatch.canConvertTo<Stmt>()) {
1062 addMatcher(NodeMatch.convertTo<Stmt>(), Action);
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp 550 const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAutoreleasePoolStmt>
593 const internal::VariadicDynCastAllOfMatcher<Stmt, UnaryExprOrTypeTraitExpr>
614 const internal::VariadicAllOfMatcher<Stmt> stmt;
615 const internal::VariadicDynCastAllOfMatcher<Stmt, DeclStmt> declStmt;
616 const internal::VariadicDynCastAllOfMatcher<Stmt, MemberExpr> memberExpr;
617 const internal::VariadicDynCastAllOfMatcher<Stmt, UnresolvedMemberExpr>
619 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDependentScopeMemberExpr>
621 const internal::VariadicDynCastAllOfMatcher<Stmt, CallExpr> callExpr;
622 const internal::VariadicDynCastAllOfMatcher<Stmt, LambdaExpr> lambdaExpr;
623 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXMemberCallExpr>
625 const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCMessageExpr>
644 const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtThrowStmt>
646 const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtTryStmt> objcTryStmt;
647 const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtCatchStmt>
649 const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCAtFinallyStmt>
651 const internal::VariadicDynCastAllOfMatcher<Stmt, ExprWithCleanups>
653 const internal::VariadicDynCastAllOfMatcher<Stmt, InitListExpr> initListExpr;
654 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXStdInitializerListExpr>
656 const internal::VariadicDynCastAllOfMatcher<Stmt, ImplicitValueInitExpr>
658 const internal::VariadicDynCastAllOfMatcher<Stmt, ParenListExpr> parenListExpr;
659 const internal::VariadicDynCastAllOfMatcher<Stmt, SubstNonTypeTemplateParmExpr>
664 const internal::VariadicDynCastAllOfMatcher<Stmt, UnresolvedLookupExpr>
670 const internal::VariadicDynCastAllOfMatcher<Stmt, ConstantExpr> constantExpr;
671 const internal::VariadicDynCastAllOfMatcher<Stmt, ParenExpr> parenExpr;
672 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXConstructExpr>
674 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXUnresolvedConstructExpr>
676 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXThisExpr> cxxThisExpr;
677 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXBindTemporaryExpr>
679 const internal::VariadicDynCastAllOfMatcher<Stmt, MaterializeTemporaryExpr>
681 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNewExpr> cxxNewExpr;
682 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDeleteExpr> cxxDeleteExpr;
683 const internal::VariadicDynCastAllOfMatcher<Stmt, ArraySubscriptExpr>
685 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDefaultArgExpr>
687 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXOperatorCallExpr>
689 const internal::VariadicDynCastAllOfMatcher<Stmt, Expr> expr;
690 const internal::VariadicDynCastAllOfMatcher<Stmt, DeclRefExpr> declRefExpr;
691 const internal::VariadicDynCastAllOfMatcher<Stmt, ObjCIvarRefExpr> objcIvarRefExpr;
692 const internal::VariadicDynCastAllOfMatcher<Stmt, BlockExpr> blockExpr;
693 const internal::VariadicDynCastAllOfMatcher<Stmt, IfStmt> ifStmt;
694 const internal::VariadicDynCastAllOfMatcher<Stmt, ForStmt> forStmt;
695 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXForRangeStmt>
697 const internal::VariadicDynCastAllOfMatcher<Stmt, WhileStmt> whileStmt;
698 const internal::VariadicDynCastAllOfMatcher<Stmt, DoStmt> doStmt;
699 const internal::VariadicDynCastAllOfMatcher<Stmt, BreakStmt> breakStmt;
700 const internal::VariadicDynCastAllOfMatcher<Stmt, ContinueStmt> continueStmt;
701 const internal::VariadicDynCastAllOfMatcher<Stmt, ReturnStmt> returnStmt;
702 const internal::VariadicDynCastAllOfMatcher<Stmt, GotoStmt> gotoStmt;
703 const internal::VariadicDynCastAllOfMatcher<Stmt, LabelStmt> labelStmt;
704 const internal::VariadicDynCastAllOfMatcher<Stmt, AddrLabelExpr> addrLabelExpr;
705 const internal::VariadicDynCastAllOfMatcher<Stmt, SwitchStmt> switchStmt;
706 const internal::VariadicDynCastAllOfMatcher<Stmt, SwitchCase> switchCase;
707 const internal::VariadicDynCastAllOfMatcher<Stmt, CaseStmt> caseStmt;
708 const internal::VariadicDynCastAllOfMatcher<Stmt, DefaultStmt> defaultStmt;
709 const internal::VariadicDynCastAllOfMatcher<Stmt, CompoundStmt> compoundStmt;
710 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXCatchStmt> cxxCatchStmt;
711 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXTryStmt> cxxTryStmt;
712 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXThrowExpr> cxxThrowExpr;
713 const internal::VariadicDynCastAllOfMatcher<Stmt, NullStmt> nullStmt;
714 const internal::VariadicDynCastAllOfMatcher<Stmt, AsmStmt> asmStmt;
715 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXBoolLiteralExpr>
717 const internal::VariadicDynCastAllOfMatcher<Stmt, StringLiteral> stringLiteral;
718 const internal::VariadicDynCastAllOfMatcher<Stmt, CharacterLiteral>
720 const internal::VariadicDynCastAllOfMatcher<Stmt, IntegerLiteral>
722 const internal::VariadicDynCastAllOfMatcher<Stmt, FloatingLiteral> floatLiteral;
723 const internal::VariadicDynCastAllOfMatcher<Stmt, ImaginaryLiteral> imaginaryLiteral;
724 const internal::VariadicDynCastAllOfMatcher<Stmt, UserDefinedLiteral>
726 const internal::VariadicDynCastAllOfMatcher<Stmt, CompoundLiteralExpr>
728 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXNullPtrLiteralExpr>
730 const internal::VariadicDynCastAllOfMatcher<Stmt, ChooseExpr> chooseExpr;
731 const internal::VariadicDynCastAllOfMatcher<Stmt, GNUNullExpr> gnuNullExpr;
732 const internal::VariadicDynCastAllOfMatcher<Stmt, AtomicExpr> atomicExpr;
733 const internal::VariadicDynCastAllOfMatcher<Stmt, StmtExpr> stmtExpr;
734 const internal::VariadicDynCastAllOfMatcher<Stmt, BinaryOperator>
736 const internal::VariadicDynCastAllOfMatcher<Stmt, UnaryOperator> unaryOperator;
737 const internal::VariadicDynCastAllOfMatcher<Stmt, ConditionalOperator>
739 const internal::VariadicDynCastAllOfMatcher<Stmt, BinaryConditionalOperator>
741 const internal::VariadicDynCastAllOfMatcher<Stmt, OpaqueValueExpr>
745 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXReinterpretCastExpr>
747 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXStaticCastExpr>
749 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXDynamicCastExpr>
751 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXConstCastExpr>
753 const internal::VariadicDynCastAllOfMatcher<Stmt, CStyleCastExpr>
755 const internal::VariadicDynCastAllOfMatcher<Stmt, ExplicitCastExpr>
757 const internal::VariadicDynCastAllOfMatcher<Stmt, ImplicitCastExpr>
759 const internal::VariadicDynCastAllOfMatcher<Stmt, CastExpr> castExpr;
760 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXFunctionalCastExpr>
762 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXTemporaryObjectExpr>
764 const internal::VariadicDynCastAllOfMatcher<Stmt, PredefinedExpr>
766 const internal::VariadicDynCastAllOfMatcher<Stmt, DesignatedInitExpr>
805 const internal::VariadicDynCastAllOfMatcher<Stmt, CUDAKernelCallExpr>
848 const internal::VariadicDynCastAllOfMatcher<Stmt, OMPExecutableDirective>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h 75 return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
78 static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
79 return Value.getMatcher().getTypedMatcher<T>();
83 return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
361 RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
368 RetTypes.push_back(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
466 ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
778 ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp 562 ASTNodeKind::getFromNodeKind<Stmt>(),
tools/clang/lib/Analysis/AnalysisDeclContext.cpp 93 Stmt *AnalysisDeclContext::getBody(bool &IsAutosynthesized) const {
96 Stmt *Body = FD->getBody();
100 Stmt *SynthesizedBody = Manager->getBodyFarm().getBody(FD);
109 Stmt *Body = MD->getBody();
111 Stmt *SynthesizedBody = Manager->getBodyFarm().getBody(MD);
126 Stmt *AnalysisDeclContext::getBody() const {
139 Stmt *Body = getBody(Tmp);
180 void AnalysisDeclContext::registerForcedBlockExpression(const Stmt *stmt) {
190 AnalysisDeclContext::getBlockForRegisteredExpression(const Stmt *stmt) {
312 AnalysisDeclContext::getStackFrame(LocationContext const *Parent, const Stmt *S,
384 const DATA *d) {
399 AnalysisDeclContext *ctx, const LocationContext *parent, const Stmt *s,
416 const Stmt *s) {
417 return getLocationContext<ScopeContext, Stmt>(ctx, parent, s);
496 if (const Stmt *S = cast<StackFrameContext>(LCtx)->getCallSite()) {
543 if (const Stmt *S = cast<StackFrameContext>(LCtx)->getCallSite()) {
592 void VisitStmt(Stmt *S) {
593 for (auto *Child : S->children())
tools/clang/lib/Analysis/BodyFarm.cpp 61 CompoundStmt *makeCompound(ArrayRef<Stmt*>);
134 CompoundStmt *ASTMaker::makeCompound(ArrayRef<Stmt *> Stmts) {
247 typedef Stmt *(*FunctionFarmer)(ASTContext &C, const FunctionDecl *D);
317 static Stmt *create_call_once(ASTContext &C, const FunctionDecl *D) {
477 static Stmt *create_dispatch_once(ASTContext &C, const FunctionDecl *D) {
535 Stmt *Stmts[] = { B, CE };
560 static Stmt *create_dispatch_sync(ASTContext &C, const FunctionDecl *D) {
586 static Stmt *create_OSAtomicCompareAndSwap(ASTContext &C, const FunctionDecl *D)
636 Stmt *Stmts[2];
655 Stmt *Else = M.makeReturn(RetVal);
667 Stmt *BodyFarm::getBody(const FunctionDecl *D) {
668 Optional<Stmt *> &Val = Bodies[D];
739 static Stmt *createObjCPropertyGetter(ASTContext &Ctx,
800 Stmt *BodyFarm::getBody(const ObjCMethodDecl *D) {
812 Optional<Stmt *> &Val = Bodies[D];
tools/clang/lib/Analysis/CFG.cpp 191 const Stmt *stmt) const;
414 llvm::SmallVector<Stmt *, 12> childrenBuf;
415 ArrayRef<Stmt *> children;
418 reverse_children(Stmt *S);
420 using iterator = ArrayRef<Stmt *>::reverse_iterator;
428 reverse_children::reverse_children(Stmt *S) {
435 case Stmt::InitListExprClass: {
446 for (Stmt *SubStmt : S->children())
524 const Stmt *lastLookup = nullptr;
539 std::unique_ptr<CFG> buildCFG(const Decl *D, Stmt *Statement);
541 bool alwaysAdd(const Stmt *stmt);
586 Stmt *Term,
600 CFGBlock *VisitReturnStmt(Stmt *S);
612 CFGBlock *Visit(Stmt *S, AddStmtChoice asc = AddStmtChoice::NotAlwaysAdd,
614 CFGBlock *VisitStmt(Stmt *S, AddStmtChoice asc);
615 CFGBlock *VisitChildren(Stmt *S);
621 const Stmt *S) {
684 CFGBlock *VisitForTemporaryDtors(Stmt *E, bool ExternallyDestructed,
686 CFGBlock *VisitChildrenForTemporaryDtors(Stmt *E, bool ExternallyDestructed,
716 Stmt *Child);
746 CFGBlock *addStmt(Stmt *S) {
751 void addLoopExit(const Stmt *LoopStmt);
753 LocalScope::const_iterator E, Stmt *S);
755 LocalScope::const_iterator E, Stmt *S);
757 LocalScope::const_iterator E, Stmt *S);
760 Stmt *S);
763 LocalScope::const_iterator E, Stmt *S);
768 void addLocalScopeForStmt(Stmt *S);
773 void addLocalScopeAndDtors(Stmt *S);
790 void appendStmt(CFGBlock *B, const Stmt *S) {
858 void appendAutomaticObjDtor(CFGBlock *B, VarDecl *VD, Stmt *S) {
862 void appendLifetimeEnds(CFGBlock *B, VarDecl *VD, Stmt *S) {
866 void appendLoopExit(CFGBlock *B, const Stmt *LoopStmt) {
898 void appendScopeBegin(CFGBlock *B, const VarDecl *VD, const Stmt *S) {
903 void prependScopeBegin(CFGBlock *B, const VarDecl *VD, const Stmt *S) {
908 void appendScopeEnd(CFGBlock *B, const VarDecl *VD, const Stmt *S) {
913 void prependScopeEnd(CFGBlock *B, const VarDecl *VD, const Stmt *S) {
1288 const Stmt *stmt) const {
1292 bool CFGBuilder::alwaysAdd(const Stmt *stmt) {
1358 const ConstructionContextLayer *Layer, Stmt *Child) {
1371 case Stmt::CXXConstructExprClass:
1372 case Stmt::CXXTemporaryObjectExprClass: {
1385 case Stmt::CallExprClass:
1386 case Stmt::CXXMemberCallExprClass:
1387 case Stmt::CXXOperatorCallExprClass:
1388 case Stmt::UserDefinedLiteralClass:
1389 case Stmt::ObjCMessageExprClass: {
1395 case Stmt::ExprWithCleanupsClass: {
1400 case Stmt::CXXFunctionalCastExprClass: {
1405 case Stmt::ImplicitCastExprClass: {
1418 case Stmt::CXXBindTemporaryExprClass: {
1423 case Stmt::MaterializeTemporaryExprClass: {
1435 case Stmt::ConditionalOperatorClass: {
1451 case Stmt::InitListExprClass: {
1479 std::unique_ptr<CFG> CFGBuilder::buildCFG(const Decl *D, Stmt *Statement) {
1668 if (Stmt *Child = Default->getExpr())
1721 void CFGBuilder::addLoopExit(const Stmt *LoopStmt){
1729 LocalScope::const_iterator E, Stmt *S) {
1752 Stmt *S) {
1764 LocalScope::const_iterator E, Stmt *S) {
1809 LocalScope::const_iterator E, Stmt *S) {
1828 LocalScope::const_iterator E, Stmt *S) {
1937 void CFGBuilder::addLocalScopeForStmt(Stmt *S) {
1946 for (auto *BI : CS->body()) {
1947 Stmt *SI = BI->stripLabelLikeStatements();
2054 void CFGBuilder::addLocalScopeAndDtors(Stmt *S) {
2120 CFGBlock *CFGBuilder::Visit(Stmt * S, AddStmtChoice asc,
2138 case Stmt::AddrLabelExprClass:
2141 case Stmt::BinaryConditionalOperatorClass:
2144 case Stmt::BinaryOperatorClass:
2147 case Stmt::BlockExprClass:
2150 case Stmt::BreakStmtClass:
2153 case Stmt::CallExprClass:
2154 case Stmt::CXXOperatorCallExprClass:
2155 case Stmt::CXXMemberCallExprClass:
2156 case Stmt::UserDefinedLiteralClass:
2159 case Stmt::CaseStmtClass:
2162 case Stmt::ChooseExprClass:
2165 case Stmt::CompoundStmtClass:
2168 case Stmt::ConditionalOperatorClass:
2171 case Stmt::ContinueStmtClass:
2174 case Stmt::CXXCatchStmtClass:
2177 case Stmt::ExprWithCleanupsClass:
2181 case Stmt::CXXDefaultArgExprClass:
2182 case Stmt::CXXDefaultInitExprClass:
2194 case Stmt::CXXBindTemporaryExprClass:
2197 case Stmt::CXXConstructExprClass:
2200 case Stmt::CXXNewExprClass:
2203 case Stmt::CXXDeleteExprClass:
2206 case Stmt::CXXFunctionalCastExprClass:
2209 case Stmt::CXXTemporaryObjectExprClass:
2212 case Stmt::CXXThrowExprClass:
2215 case Stmt::CXXTryStmtClass:
2218 case Stmt::CXXForRangeStmtClass:
2221 case Stmt::DeclStmtClass:
2224 case Stmt::DefaultStmtClass:
2227 case Stmt::DoStmtClass:
2230 case Stmt::ForStmtClass:
2233 case Stmt::GotoStmtClass:
2236 case Stmt::GCCAsmStmtClass:
2239 case Stmt::IfStmtClass:
2242 case Stmt::ImplicitCastExprClass:
2245 case Stmt::ConstantExprClass:
2248 case Stmt::IndirectGotoStmtClass:
2251 case Stmt::LabelStmtClass:
2254 case Stmt::LambdaExprClass:
2257 case Stmt::MaterializeTemporaryExprClass:
2261 case Stmt::MemberExprClass:
2264 case Stmt::NullStmtClass:
2267 case Stmt::ObjCAtCatchStmtClass:
2270 case Stmt::ObjCAutoreleasePoolStmtClass:
2273 case Stmt::ObjCAtSynchronizedStmtClass:
2276 case Stmt::ObjCAtThrowStmtClass:
2279 case Stmt::ObjCAtTryStmtClass:
2282 case Stmt::ObjCForCollectionStmtClass:
2285 case Stmt::ObjCMessageExprClass:
2288 case Stmt::OpaqueValueExprClass:
2291 case Stmt::PseudoObjectExprClass:
2294 case Stmt::ReturnStmtClass:
2295 case Stmt::CoreturnStmtClass:
2298 case Stmt::SEHExceptStmtClass:
2301 case Stmt::SEHFinallyStmtClass:
2304 case Stmt::SEHLeaveStmtClass:
2307 case Stmt::SEHTryStmtClass:
2310 case Stmt::UnaryExprOrTypeTraitExprClass:
2314 case Stmt::StmtExprClass:
2317 case Stmt::SwitchStmtClass:
2320 case Stmt::UnaryOperatorClass:
2323 case Stmt::WhileStmtClass:
2328 CFGBlock *CFGBuilder::VisitStmt(Stmt *S, AddStmtChoice asc) {
2338 CFGBlock *CFGBuilder::VisitChildren(Stmt *S) {
2346 if (Stmt *Child = *I)
2391 Stmt *Term,
2915 if (Stmt *Init = I->getInit())
2936 if (Stmt *Else = I->getElse()) {
2961 Stmt *Then = I->getThen();
3028 if (Stmt *Init = I->getInit()) {
3036 CFGBlock *CFGBuilder::VisitReturnStmt(Stmt *S) {
3292 if (Stmt *Init = F->getInit())
3334 if (Stmt *I = F->getInc()) {
3446 if (Stmt *I = F->getInit()) {
3861 if (Stmt *C = D->getCond()) {
3999 if (Stmt *Init = Terminator->getInit())
4092 if (Stmt *Init = Terminator->getInit()) {
4141 if (Stmt *Sub = CS->getSubStmt()) {
4344 if (Stmt *Range = S->getRangeStmt())
4346 if (Stmt *Begin = S->getBeginStmt())
4348 if (Stmt *End = S->getEndStmt())
4596 CFGBlock *CFGBuilder::VisitForTemporaryDtors(Stmt *E, bool ExternallyDestructed,
4609 case Stmt::InitListExprClass:
4612 case Stmt::BinaryOperatorClass:
4617 case Stmt::CXXBindTemporaryExprClass:
4621 case Stmt::BinaryConditionalOperatorClass:
4622 case Stmt::ConditionalOperatorClass:
4626 case Stmt::ImplicitCastExprClass:
4631 case Stmt::CXXFunctionalCastExprClass:
4636 case Stmt::ConstantExprClass:
4640 case Stmt::ParenExprClass:
4644 case Stmt::MaterializeTemporaryExprClass: {
4662 case Stmt::BlockExprClass:
4667 case Stmt::LambdaExprClass: {
4682 case Stmt::StmtExprClass:
4687 case Stmt::CXXDefaultArgExprClass:
4691 case Stmt::CXXDefaultInitExprClass:
4697 CFGBlock *CFGBuilder::VisitChildrenForTemporaryDtors(Stmt *E,
4710 for (Stmt *Child : E->children())
4857 SmallVector<Stmt *, 8> Used(
4859 for (Stmt *S : llvm::reverse(Used)) {
4867 Stmt *S = CS->getCapturedStmt();
4897 std::unique_ptr<CFG> CFG::buildCFG(const Decl *D, Stmt *Statement,
5046 const Stmt *L = To->getLabel();
5063 using StmtMapTy = llvm::DenseMap<const Stmt *, std::pair<unsigned, unsigned>>;
5082 const Stmt *stmt= SE->getStmt();
5087 case Stmt::DeclStmtClass:
5090 case Stmt::IfStmtClass: {
5096 case Stmt::ForStmtClass: {
5102 case Stmt::WhileStmtClass: {
5109 case Stmt::SwitchStmtClass: {
5116 case Stmt::CXXCatchStmtClass: {
5137 bool handledStmt(Stmt *S, raw_ostream &OS) override {
5183 if (Stmt *C = I->getCond())
5188 void VisitStmt(Stmt *Terminator) {
5202 if (Stmt *C = F->getCond())
5212 if (Stmt *C = W->getCond())
5218 if (Stmt *C = D->getCond())
5236 if (Stmt *Cond = C->getCond())
5243 if (Stmt *Cond = C->getCond())
5250 if (Stmt *T = I->getTarget())
5322 SmallVector<const Stmt *, 3> Stmts;
5381 if (const Stmt *BTE = ACC->getCXXBindTemporaryExpr()) {
5413 const Stmt *S = CS.getStmt();
5526 Helper.handledStmt(cast<Stmt>(DelExpr->getArgument()), OS);
5585 if (Stmt *Label = const_cast<Stmt*>(B.getLabel())) {
5886 const Stmt *Cond = StmtElem->getStmt();
5895 Stmt *CFGBlock::getTerminatorCondition(bool StripParens) {
5896 Stmt *Terminator = getTerminatorStmt();
5906 case Stmt::CXXForRangeStmtClass:
5910 case Stmt::ForStmtClass:
5914 case Stmt::WhileStmtClass:
5918 case Stmt::DoStmtClass:
5922 case Stmt::IfStmtClass:
5926 case Stmt::ChooseExprClass:
5930 case Stmt::IndirectGotoStmtClass:
5934 case Stmt::SwitchStmtClass:
5938 case Stmt::BinaryConditionalOperatorClass:
5942 case Stmt::ConditionalOperatorClass:
5946 case Stmt::BinaryOperatorClass: // '&&' and '||'
5950 case Stmt::ObjCForCollectionStmtClass:
tools/clang/lib/Analysis/CFGStmtMap.cpp 21 typedef llvm::DenseMap<const Stmt*, CFGBlock*> SMap;
26 CFGBlock *CFGStmtMap::getBlock(Stmt *S) {
28 Stmt *X = S;
67 if (Stmt *Label = B->getLabel())
73 if (Stmt *Term = B->getTerminatorStmt())
tools/clang/lib/Analysis/CallGraph.cpp 53 void VisitStmt(Stmt *S) { VisitChildren(S); }
131 void VisitChildren(Stmt *S) {
132 for (Stmt *SubStmt : S->children())
182 if (Stmt *Body = D->getBody())
tools/clang/lib/Analysis/CloneDetection.cpp 30 StmtSequence::StmtSequence(const Stmt *Stmt, const Decl *D)
191 CloneTypeIIStmtDataCollector(const Stmt *S, ASTContext &Context,
249 saveHash(const Stmt *S, const Decl *D,
259 for (const Stmt *Child : S->children()) {
319 for (const Stmt *S : Sequence) {
323 for (const Stmt *Child : S->children()) {
447 for (const Stmt *S : Seq) {
454 for (const Stmt *S : Seq.front()->children()) {
526 const Stmt *Mention) {
542 void VariablePattern::addVariables(const Stmt *S) {
556 for (const Stmt *Child : S->children()) {
tools/clang/lib/Analysis/Consumed.cpp 79 if (const Stmt *StmtNode = Block->getTerminatorStmt()) {
460 using MapType = llvm::DenseMap<const Stmt *, PropagationInfo>;
461 using PairType= std::pair<const Stmt *, PropagationInfo>;
tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp 39 const ast_matchers::internal::VariadicDynCastAllOfMatcher<Stmt, CXXTypeidExpr>
46 const ast_matchers::internal::VariadicDynCastAllOfMatcher<Stmt, CXXNoexceptExpr>
49 const ast_matchers::internal::VariadicDynCastAllOfMatcher<Stmt,
85 const Stmt *tryEachMatch(ArrayRef<ast_matchers::BoundNodes> Matches,
89 if (const Stmt *S = (Analyzer->*Finder)(Nodes.getNodeAs<T>(ID)))
97 const Stmt *ExprMutationAnalyzer::findMutation(const Expr *Exp) {
109 const Stmt *ExprMutationAnalyzer::findMutation(const Decl *Dec) {
113 const Stmt *ExprMutationAnalyzer::findPointeeMutation(const Expr *Exp) {
117 const Stmt *ExprMutationAnalyzer::findPointeeMutation(const Decl *Dec) {
121 const Stmt *ExprMutationAnalyzer::findMutationMemoized(
132 if (const Stmt *S = (this->*Finder)(Exp))
139 const Stmt *ExprMutationAnalyzer::tryEachDeclRef(const Decl *Dec,
183 const Stmt *
188 const Stmt *
193 const Stmt *ExprMutationAnalyzer::findExprPointeeMutation(
199 const Stmt *ExprMutationAnalyzer::findDeclPointeeMutation(
205 const Stmt *ExprMutationAnalyzer::findDirectMutation(const Expr *Exp) {
293 return selectFirst<Stmt>("stmt", Matches);
296 const Stmt *ExprMutationAnalyzer::findMemberMutation(const Expr *Exp) {
307 const Stmt *ExprMutationAnalyzer::findArrayElementMutation(const Expr *Exp) {
316 const Stmt *ExprMutationAnalyzer::findCastMutation(const Expr *Exp) {
326 if (const Stmt *S = findExprMutation(Casts))
338 const Stmt *ExprMutationAnalyzer::findRangeLoopMutation(const Expr *Exp) {
350 const Stmt *ExprMutationAnalyzer::findReferenceMutation(const Expr *Exp) {
362 if (const Stmt *S = findExprMutation(Ref))
384 const Stmt *ExprMutationAnalyzer::findFunctionArgMutation(const Expr *Exp) {
445 if (const Stmt *S = InitAnalyzer.findMutation(Parm))
452 const Stmt *
458 if (const Stmt *S = BodyAnalyzer.findMutation(Parm))
tools/clang/lib/Analysis/LiveVariables.cpp 77 llvm::ImmutableSet<const Stmt *>::Factory SSetFact;
82 llvm::DenseMap<const Stmt *, LiveVariables::LivenessValues> stmtsToLiveness;
114 bool LiveVariables::LivenessValues::isLive(const Stmt *S) const {
147 llvm::ImmutableSetRef<const Stmt *>
187 bool LiveVariables::isLive(const Stmt *S, const VarDecl *D) {
191 bool LiveVariables::isLive(const Stmt *Loc, const Stmt *S) {
191 bool LiveVariables::isLive(const Stmt *Loc, const Stmt *S) {
219 void Visit(Stmt *S);
236 static const Stmt *LookThroughStmt(const Stmt *S) {
236 static const Stmt *LookThroughStmt(const Stmt *S) {
253 static void AddLiveStmt(llvm::ImmutableSet<const Stmt *> &Set,
254 llvm::ImmutableSet<const Stmt *>::Factory &F,
255 const Stmt *S) {
259 void TransferFunctions::Visit(Stmt *S) {
274 case Stmt::StmtExprClass: {
279 case Stmt::CXXMemberCallExprClass: {
287 case Stmt::ObjCMessageExprClass: {
295 case Stmt::DeclStmtClass: {
305 case Stmt::PseudoObjectExprClass: {
318 case Stmt::ExprWithCleanupsClass: {
322 case Stmt::CXXBindTemporaryExprClass: {
326 case Stmt::UnaryExprOrTypeTraitExprClass: {
330 case Stmt::IfStmtClass: {
337 case Stmt::WhileStmtClass: {
344 case Stmt::DoStmtClass: {
351 case Stmt::ForStmtClass: {
361 for (Stmt *Child : S->children()) {
439 Stmt *element = OS->getElement();
504 if (const Stmt *term = block->getTerminatorStmt())
521 const Stmt *S = elem.castAs<CFGStmt>().getStmt();
574 const Stmt* stmt = cs->getStmt();
tools/clang/lib/Analysis/PathDiagnostic.cpp 463 const Stmt *S, LocationOrAnalysisDeclContext LAC, bool UseEndOfStatement) {
480 const Stmt *Parent = S;
489 const Stmt *Body = ADC->getBody();
536 if (const Stmt *CallerBody = CallerInfo->getBody())
570 PathDiagnosticLocation::createBegin(const Stmt *S,
578 PathDiagnosticLocation::createEnd(const Stmt *S,
651 const Stmt* S = nullptr;
763 const Stmt *S = asStmt();
767 case Stmt::DeclStmtClass: {
778 case Stmt::IfStmtClass:
779 case Stmt::WhileStmtClass:
780 case Stmt::DoStmtClass:
781 case Stmt::ForStmtClass:
782 case Stmt::ChooseExprClass:
783 case Stmt::IndirectGotoStmtClass:
784 case Stmt::SwitchStmtClass:
785 case Stmt::BinaryConditionalOperatorClass:
786 case Stmt::ConditionalOperatorClass:
787 case Stmt::ObjCForCollectionStmtClass: {
801 if (Stmt *Body = FD->getBody())
1145 if (const Stmt *SLoc = getLocation().getStmtOrNull())
tools/clang/lib/Analysis/ProgramPoint.cpp 21 ProgramPoint ProgramPoint::getProgramPoint(const Stmt *S, ProgramPoint::Kind K,
135 const Stmt *T = E.getSrc()->getTerminatorStmt();
152 if (const Stmt *Label = E.getDst()->getLabel()) {
155 if (const Stmt *LHS = C->getLHS()) {
162 if (const Stmt *RHS = C->getRHS()) {
186 const Stmt *S = castAs<StmtPoint>().getStmt();
tools/clang/lib/Analysis/ReachableCode.cpp 48 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) {
51 if (const Stmt *Term = B->getTerminatorStmt()) {
60 static bool isBuiltinUnreachable(const Stmt *S) {
68 static bool isBuiltinAssumeFalse(const CFGBlock *B, const Stmt *S,
83 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) {
148 static bool isExpandedFromConfigurationMacro(const Stmt *S,
187 static bool isConfigurationValue(const Stmt *S,
213 case Stmt::CallExprClass: {
218 case Stmt::DeclRefExprClass:
220 case Stmt::ObjCBoolLiteralExprClass:
223 case Stmt::CXXBoolLiteralExprClass:
224 case Stmt::IntegerLiteralClass: {
233 case Stmt::MemberExprClass:
235 case Stmt::UnaryExprOrTypeTraitExprClass:
237 case Stmt::BinaryOperatorClass: {
248 case Stmt::UnaryOperatorClass: {
295 if (const Stmt *Term = B->getTerminatorStmt()) {
304 const Stmt *Cond = B->getTerminatorCondition(/* stripParens */ false);
392 typedef SmallVector<std::pair<const CFGBlock *, const Stmt *>, 12>
409 const Stmt *findDeadCode(const CFGBlock *Block);
412 const Stmt *S,
448 static bool isValidDeadStmt(const Stmt *S) {
456 const Stmt *DeadCodeScan::findDeadCode(const clang::CFGBlock *Block) {
459 const Stmt *S = CS->getStmt();
466 const Stmt *S = T.getStmt();
474 static int SrcCmp(const std::pair<const CFGBlock *, const Stmt *> *p1,
475 const std::pair<const CFGBlock *, const Stmt *> *p2) {
498 const Stmt *S = findDeadCode(Block);
545 static SourceLocation GetUnreachableLoc(const Stmt *S,
596 case Stmt::CXXTryStmtClass: {
611 const Stmt *S,
632 if (const Stmt *LoopTarget = B->getLoopTarget()) {
653 const Stmt *TermCond =
tools/clang/lib/Analysis/ThreadSafety.cpp 419 std::vector<std::pair<const Stmt *, Context>> SavedContexts;
460 Context getNextContext(unsigned &CtxIndex, const Stmt *S, Context C) {
522 void saveContext(const Stmt *S, Context C) {
818 if (const Stmt *S = CurrBlock->getTerminatorStmt()) {
1046 const CallExpr* getTrylockCallExpr(const Stmt *Cond, LocalVarContext C,
1424 const CallExpr* ThreadSafetyAnalyzer::getTrylockCallExpr(const Stmt *Cond,
1500 const Stmt *Cond = PredBlock->getTerminatorCondition();
2405 if (const Stmt *Terminator = (*PI)->getTerminatorStmt()) {
2444 const Stmt *Terminator = PrevBlock->getTerminatorStmt();
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp 42 case Stmt::IntegerLiteralClass:
44 case Stmt::StringLiteralClass: {
50 case Stmt::CharacterLiteralClass:
51 case Stmt::CXXNullPtrLiteralExprClass:
52 case Stmt::GNUNullExprClass:
53 case Stmt::CXXBoolLiteralExprClass:
54 case Stmt::FloatingLiteralClass:
55 case Stmt::ImaginaryLiteralClass:
56 case Stmt::ObjCStringLiteralClass:
71 til::SExpr *SExprBuilder::lookupStmt(const Stmt *S) {
198 til::SExpr *SExprBuilder::translate(const Stmt *S, CallingContext *Ctx) {
208 case Stmt::DeclRefExprClass:
210 case Stmt::CXXThisExprClass:
212 case Stmt::MemberExprClass:
214 case Stmt::ObjCIvarRefExprClass:
216 case Stmt::CallExprClass:
218 case Stmt::CXXMemberCallExprClass:
220 case Stmt::CXXOperatorCallExprClass:
222 case Stmt::UnaryOperatorClass:
224 case Stmt::BinaryOperatorClass:
225 case Stmt::CompoundAssignOperatorClass:
228 case Stmt::ArraySubscriptExprClass:
230 case Stmt::ConditionalOperatorClass:
233 case Stmt::BinaryConditionalOperatorClass:
238 case Stmt::ConstantExprClass:
240 case Stmt::ParenExprClass:
242 case Stmt::ExprWithCleanupsClass:
244 case Stmt::CXXBindTemporaryExprClass:
246 case Stmt::MaterializeTemporaryExprClass:
251 case Stmt::CharacterLiteralClass:
252 case Stmt::CXXNullPtrLiteralExprClass:
253 case Stmt::GNUNullExprClass:
254 case Stmt::CXXBoolLiteralExprClass:
255 case Stmt::FloatingLiteralClass:
256 case Stmt::ImaginaryLiteralClass:
257 case Stmt::IntegerLiteralClass:
258 case Stmt::StringLiteralClass:
259 case Stmt::ObjCStringLiteralClass:
262 case Stmt::DeclStmtClass:
636 til::SExpr *SExprBuilder::addStatement(til::SExpr* E, const Stmt *S,
884 void SExprBuilder::handleStatement(const Stmt *S) {
tools/clang/lib/Analysis/UninitializedValues.cpp 355 void operator()(Stmt *S) { Visit(S); }
460 for (Stmt *S : OMPExecutableDirective::used_clauses_children(ED->clauses()))
661 const Stmt *Term = Block->getTerminatorStmt();
677 const Stmt *Label = Succ->getLabel();
719 for (Stmt *S : OMPExecutableDirective::used_clauses_children(ED->clauses())) {
tools/clang/lib/CodeGen/Address.h 108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGClass.cpp 839 Stmt *Body = Ctor->getBody(Definition);
1139 FieldDecl *getMemcpyableField(Stmt *S) {
1152 Stmt *RHS = BO->getRHS();
1208 SmallVector<Stmt*, 16> AggregatedStmts;
1218 void emitAssignment(Stmt *S) {
1438 Stmt *Body = Dtor->getBody();
1535 const Stmt *RootS = AssignOp->getBody();
1544 for (auto *I : RootCS->body())
tools/clang/lib/CodeGen/CGCoroutine.cpp 47 Stmt *ExceptionHandler = nullptr;
330 void VisitStmt(Stmt *S) {
331 for (auto *C : S->children()) {
420 Stmt *Deallocate;
464 explicit CallCoroDelete(Stmt *DeallocStmt) : Deallocate(DeallocStmt) {}
535 const CoroutineBodyStmt &S, Stmt *Body) {
539 if (Stmt *OnFallthrough = S.getFallthroughHandler())
572 if (auto *RetOnAllocFailure = S.getReturnStmtOnAllocFailure()) {
691 if (Stmt *Ret = S.getReturnStmt())
tools/clang/lib/CodeGen/CGDebugInfo.cpp 4649 const Stmt *FuncBody = (*FD).getBody();
tools/clang/lib/CodeGen/CGDecl.cpp 631 static bool isAccessedBy(const VarDecl &var, const Stmt *s) {
648 for (const Stmt *SubStmt : s->children())
1587 static bool isCapturedBy(const VarDecl &Var, const Stmt *S) {
1590 for (const Stmt *SubStmt : S->children())
1616 for (const auto *BI : CS->body())
1638 for (const Stmt *SubStmt : E->children())
tools/clang/lib/CodeGen/CGException.cpp 428 const Stmt *ThrowStmt = E->getSubExpr();
1291 const Stmt *Body;
1297 PerformFinally(const Stmt *Body, llvm::Value *ForEHVar,
1363 void CodeGenFunction::FinallyInfo::enter(CodeGenFunction &CGF, const Stmt *body,
1667 void Visit(const Stmt *S) {
1670 for (const Stmt *Child : S->children())
1752 const Stmt *OutlinedStmt,
1835 const Stmt *OutlinedStmt) {
1914 const Stmt *FinallyBlock = Finally.getBlock();
tools/clang/lib/CodeGen/CGExprAgg.cpp 108 void VisitStmt(Stmt *S) {
tools/clang/lib/CodeGen/CGExprComplex.cpp 98 ComplexPairTy VisitStmt(Stmt *S) {
tools/clang/lib/CodeGen/CGExprConstant.cpp 997 llvm::Constant *VisitStmt(Stmt *S, QualType T) {
1759 ConstantLValue VisitStmt(const Stmt *S) { return nullptr; }
tools/clang/lib/CodeGen/CGExprScalar.cpp 426 Value *VisitStmt(Stmt *S) {
tools/clang/lib/CodeGen/CGObjC.cpp 3440 const Stmt *subStmt = ARPS.getSubStmt();
3457 for (const auto *I : S.body())
tools/clang/lib/CodeGen/CGObjCMac.cpp 1367 void EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF, const Stmt &S);
4121 const Stmt &S;
4126 PerformFragileFinally(const Stmt *S,
4442 const Stmt &S) {
tools/clang/lib/CodeGen/CGObjCRuntime.cpp 120 const Stmt *Body;
199 const Stmt *FinallyBlock = Finally->getFinallyBody();
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp 70 void EmitBody(CodeGenFunction &CGF, const Stmt *S) override;
372 void EmitBody(CodeGenFunction &CGF, const Stmt *S) override {
1210 void CGOpenMPRegionInfo::EmitBody(CodeGenFunction &CGF, const Stmt * /*S*/) {
6548 const Stmt *CGOpenMPRuntime::getSingleCompoundChild(ASTContext &Ctx,
6549 const Stmt *Body) {
6550 const Stmt *Child = Body->IgnoreContainers();
6553 for (const Stmt *S : C->body()) {
6614 const auto *Body =
6616 const Stmt *ChildStmt =
6720 const Stmt *Child = CGOpenMPRuntime::getSingleCompoundChild(
6835 const Stmt *Child = CGOpenMPRuntime::getSingleCompoundChild(
6865 const Stmt *Child = CGOpenMPRuntime::getSingleCompoundChild(
6892 const Stmt *Child = CGOpenMPRuntime::getSingleCompoundChild(
8707 const auto *Body =
8709 const Stmt *ChildStmt =
9437 void CGOpenMPRuntime::scanForTargetRegionsFunctions(const Stmt *S,
9575 for (const Stmt *II : S->children())
tools/clang/lib/CodeGen/CGOpenMPRuntime.h 692 void scanForTargetRegionsFunctions(const Stmt *S, StringRef ParentName);
825 static const Stmt *getSingleCompoundChild(ASTContext &Ctx, const Stmt *Body);
825 static const Stmt *getSingleCompoundChild(ASTContext &Ctx, const Stmt *Body);
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp 570 for (const Stmt *Child : E->children())
575 void VisitStmt(const Stmt *S) {
578 for (const Stmt *Child : S->children())
726 const auto *Body =
728 const Stmt *ChildStmt = CGOpenMPRuntime::getSingleCompoundChild(Ctx, Body);
910 const auto *Body =
912 const Stmt *ChildStmt = CGOpenMPRuntime::getSingleCompoundChild(Ctx, Body);
2004 if (const Stmt *S = CGOpenMPRuntime::getSingleCompoundChild(
4666 const Stmt *Body = nullptr;
tools/clang/lib/CodeGen/CGStmt.cpp 34 void CodeGenFunction::EmitStopPoint(const Stmt *S) {
44 void CodeGenFunction::EmitStmt(const Stmt *S, ArrayRef<const Attr *> Attrs) {
83 case Stmt::NoStmtClass:
84 case Stmt::CXXCatchStmtClass:
85 case Stmt::SEHExceptStmtClass:
86 case Stmt::SEHFinallyStmtClass:
87 case Stmt::MSDependentExistsStmtClass:
89 case Stmt::NullStmtClass:
90 case Stmt::CompoundStmtClass:
91 case Stmt::DeclStmtClass:
92 case Stmt::LabelStmtClass:
93 case Stmt::AttributedStmtClass:
94 case Stmt::GotoStmtClass:
95 case Stmt::BreakStmtClass:
96 case Stmt::ContinueStmtClass:
97 case Stmt::DefaultStmtClass:
98 case Stmt::CaseStmtClass:
99 case Stmt::SEHLeaveStmtClass:
136 case Stmt::IndirectGotoStmtClass:
139 case Stmt::IfStmtClass: EmitIfStmt(cast<IfStmt>(*S)); break;
140 case Stmt::WhileStmtClass: EmitWhileStmt(cast<WhileStmt>(*S), Attrs); break;
141 case Stmt::DoStmtClass: EmitDoStmt(cast<DoStmt>(*S), Attrs); break;
142 case Stmt::ForStmtClass: EmitForStmt(cast<ForStmt>(*S), Attrs); break;
144 case Stmt::ReturnStmtClass: EmitReturnStmt(cast<ReturnStmt>(*S)); break;
146 case Stmt::SwitchStmtClass: EmitSwitchStmt(cast<SwitchStmt>(*S)); break;
147 case Stmt::GCCAsmStmtClass: // Intentional fall-through.
148 case Stmt::MSAsmStmtClass: EmitAsmStmt(cast<AsmStmt>(*S)); break;
149 case Stmt::CoroutineBodyStmtClass:
152 case Stmt::CoreturnStmtClass:
155 case Stmt::CapturedStmtClass: {
160 case Stmt::ObjCAtTryStmtClass:
163 case Stmt::ObjCAtCatchStmtClass:
166 case Stmt::ObjCAtFinallyStmtClass:
169 case Stmt::ObjCAtThrowStmtClass:
172 case Stmt::ObjCAtSynchronizedStmtClass:
175 case Stmt::ObjCForCollectionStmtClass:
178 case Stmt::ObjCAutoreleasePoolStmtClass:
182 case Stmt::CXXTryStmtClass:
185 case Stmt::CXXForRangeStmtClass:
188 case Stmt::SEHTryStmtClass:
191 case Stmt::OMPParallelDirectiveClass:
194 case Stmt::OMPSimdDirectiveClass:
197 case Stmt::OMPForDirectiveClass:
200 case Stmt::OMPForSimdDirectiveClass:
203 case Stmt::OMPSectionsDirectiveClass:
206 case Stmt::OMPSectionDirectiveClass:
209 case Stmt::OMPSingleDirectiveClass:
212 case Stmt::OMPMasterDirectiveClass:
215 case Stmt::OMPCriticalDirectiveClass:
218 case Stmt::OMPParallelForDirectiveClass:
221 case Stmt::OMPParallelForSimdDirectiveClass:
224 case Stmt::OMPParallelSectionsDirectiveClass:
227 case Stmt::OMPTaskDirectiveClass:
230 case Stmt::OMPTaskyieldDirectiveClass:
233 case Stmt::OMPBarrierDirectiveClass:
236 case Stmt::OMPTaskwaitDirectiveClass:
239 case Stmt::OMPTaskgroupDirectiveClass:
242 case Stmt::OMPFlushDirectiveClass:
245 case Stmt::OMPOrderedDirectiveClass:
248 case Stmt::OMPAtomicDirectiveClass:
251 case Stmt::OMPTargetDirectiveClass:
254 case Stmt::OMPTeamsDirectiveClass:
257 case Stmt::OMPCancellationPointDirectiveClass:
260 case Stmt::OMPCancelDirectiveClass:
263 case Stmt::OMPTargetDataDirectiveClass:
266 case Stmt::OMPTargetEnterDataDirectiveClass:
269 case Stmt::OMPTargetExitDataDirectiveClass:
272 case Stmt::OMPTargetParallelDirectiveClass:
275 case Stmt::OMPTargetParallelForDirectiveClass:
278 case Stmt::OMPTaskLoopDirectiveClass:
281 case Stmt::OMPTaskLoopSimdDirectiveClass:
284 case Stmt::OMPMasterTaskLoopDirectiveClass:
287 case Stmt::OMPMasterTaskLoopSimdDirectiveClass:
291 case Stmt::OMPParallelMasterTaskLoopDirectiveClass:
295 case Stmt::OMPDistributeDirectiveClass:
298 case Stmt::OMPTargetUpdateDirectiveClass:
301 case Stmt::OMPDistributeParallelForDirectiveClass:
305 case Stmt::OMPDistributeParallelForSimdDirectiveClass:
309 case Stmt::OMPDistributeSimdDirectiveClass:
312 case Stmt::OMPTargetParallelForSimdDirectiveClass:
316 case Stmt::OMPTargetSimdDirectiveClass:
319 case Stmt::OMPTeamsDistributeDirectiveClass:
322 case Stmt::OMPTeamsDistributeSimdDirectiveClass:
326 case Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
330 case Stmt::OMPTeamsDistributeParallelForDirectiveClass:
334 case Stmt::OMPTargetTeamsDirectiveClass:
337 case Stmt::OMPTargetTeamsDistributeDirectiveClass:
341 case Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:
345 case Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
349 case Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:
356 bool CodeGenFunction::EmitSimpleStmt(const Stmt *S) {
359 case Stmt::NullStmtClass: break;
360 case Stmt::CompoundStmtClass: EmitCompoundStmt(cast<CompoundStmt>(*S)); break;
361 case Stmt::DeclStmtClass: EmitDeclStmt(cast<DeclStmt>(*S)); break;
362 case Stmt::LabelStmtClass: EmitLabelStmt(cast<LabelStmt>(*S)); break;
363 case Stmt::AttributedStmtClass:
365 case Stmt::GotoStmtClass: EmitGotoStmt(cast<GotoStmt>(*S)); break;
366 case Stmt::BreakStmtClass: EmitBreakStmt(cast<BreakStmt>(*S)); break;
367 case Stmt::ContinueStmtClass: EmitContinueStmt(cast<ContinueStmt>(*S)); break;
368 case Stmt::DefaultStmtClass: EmitDefaultStmt(cast<DefaultStmt>(*S)); break;
369 case Stmt::CaseStmtClass: EmitCaseStmt(cast<CaseStmt>(*S)); break;
370 case Stmt::SEHLeaveStmtClass: EmitSEHLeaveStmt(cast<SEHLeaveStmt>(*S)); break;
395 const Stmt *ExprResult = S.getStmtExprResult();
401 for (auto *CurStmt : S.body()) {
649 const Stmt *Executed = S.getThen();
650 const Stmt *Skipped = S.getElse();
688 if (const Stmt *Else = S.getElse()) {
1377 static CSFC_Result CollectStatementsForCase(const Stmt *S,
1380 SmallVectorImpl<const Stmt*> &ResultStmts) {
1534 SmallVectorImpl<const Stmt*> &ResultStmts,
1595 SmallVector<const Stmt*, 4> CaseStmts;
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp 146 const Stmt *Body =
156 if (const Stmt *Init = CXXFor->getInit())
1372 const Stmt *Body =
1394 const Stmt &S, bool RequiresCleanup, const Expr *LoopCond,
2608 const Stmt *CapturedStmt = S.getInnermostCapturedStmt()->getCapturedStmt();
2658 for (const Stmt *SubStmt : CS->children()) {
4092 const Stmt *CS = S.getInnermostCapturedStmt()->IgnoreContainers();
4097 for (const Stmt *C : Compound->body()) {
tools/clang/lib/CodeGen/CodeGenFunction.cpp 588 const Stmt *Body = nullptr;
738 FD->getBody()->getStmtClass() == Stmt::CoroutineBodyStmtClass)
1039 void CodeGenFunction::EmitFunctionBody(const Stmt *Body) {
1052 const Stmt *S) {
1156 if (Stmt *Body = FD->getBody())
1175 Stmt *Body = FD->getBody();
1250 bool CodeGenFunction::ContainsLabel(const Stmt *S, bool IgnoreCaseStmts) {
1272 for (const Stmt *SubStmt : S->children())
1282 bool CodeGenFunction::containsBreak(const Stmt *S) {
1296 for (const Stmt *SubStmt : S->children())
1303 bool CodeGenFunction::mightAddDeclToScope(const Stmt *S) {
1319 for (const Stmt *SubStmt : S->children())
1563 void CodeGenFunction::ErrorUnsupported(const Stmt *S, const char *Type) {
tools/clang/lib/CodeGen/CodeGenFunction.h 389 virtual void EmitBody(CodeGenFunction &CGF, const Stmt *S) {
589 void enter(CodeGenFunction &CGF, const Stmt *Finally,
1336 llvm::MDNode *createProfileWeightsForLoop(const Stmt *Cond,
1342 void incrementProfileCounter(const Stmt *S, llvm::Value *StepV = nullptr) {
1349 uint64_t getProfileCount(const Stmt *S) {
1852 void EmitFunctionBody(const Stmt *Body);
1853 void EmitBlockWithFallThrough(llvm::BasicBlock *BB, const Stmt *S);
2117 void ErrorUnsupported(const Stmt *S, const char *Type);
2841 void EmitStopPoint(const Stmt *S);
2849 void EmitStmt(const Stmt *S, ArrayRef<const Attr *> Attrs = None);
2857 bool EmitSimpleStmt(const Stmt *S);
2921 const Stmt *OutlinedStmt);
2942 void EmitCapturedLocals(CodeGenFunction &ParentCGF, const Stmt *OutlinedStmt,
3240 const Stmt &S, bool RequiresCleanup, const Expr *LoopCond,
4034 static bool ContainsLabel(const Stmt *S, bool IgnoreCaseStmts = false);
4039 static bool containsBreak(const Stmt *S);
4043 static bool mightAddDeclToScope(const Stmt *S);
tools/clang/lib/CodeGen/CodeGenModule.cpp 735 void CodeGenModule::ErrorUnsupported(const Stmt *S, const char *Type) {
2600 bool VisitStmt(const Stmt *S) {
2601 for (const Stmt *Child : S->children())
2689 const Stmt *Body = FD->getBody();
tools/clang/lib/CodeGen/CodeGenModule.h 1087 void ErrorUnsupported(const Stmt *S, const char *Type);
tools/clang/lib/CodeGen/CodeGenPGO.cpp 158 llvm::DenseMap<const Stmt *, unsigned> &CounterMap;
161 llvm::DenseMap<const Stmt *, unsigned> &CounterMap)
195 PGOHash::HashType updateCounterMappings(Stmt *S) {
203 bool VisitStmt(Stmt *S) {
219 for (Stmt *CS : If->children()) {
252 PGOHash::HashType getHashType(PGOHashVersion HashVersion, const Stmt *S) {
256 case Stmt::LabelStmtClass:
258 case Stmt::WhileStmtClass:
260 case Stmt::DoStmtClass:
262 case Stmt::ForStmtClass:
264 case Stmt::CXXForRangeStmtClass:
266 case Stmt::ObjCForCollectionStmtClass:
268 case Stmt::SwitchStmtClass:
270 case Stmt::CaseStmtClass:
272 case Stmt::DefaultStmtClass:
274 case Stmt::IfStmtClass:
276 case Stmt::CXXTryStmtClass:
278 case Stmt::CXXCatchStmtClass:
280 case Stmt::ConditionalOperatorClass:
282 case Stmt::BinaryConditionalOperatorClass:
284 case Stmt::BinaryOperatorClass: {
316 case Stmt::GotoStmtClass:
318 case Stmt::IndirectGotoStmtClass:
320 case Stmt::BreakStmtClass:
322 case Stmt::ContinueStmtClass:
324 case Stmt::ReturnStmtClass:
326 case Stmt::CXXThrowExprClass:
328 case Stmt::UnaryOperatorClass: {
355 llvm::DenseMap<const Stmt *, uint64_t> &CountMap;
365 ComputeRegionCounts(llvm::DenseMap<const Stmt *, uint64_t> &CountMap,
369 void RecordStmtCount(const Stmt *S) {
382 void VisitStmt(const Stmt *S) {
384 for (const Stmt *Child : S->children())
803 RegionCounterMap.reset(new llvm::DenseMap<const Stmt *, unsigned>);
870 StmtCountMap.reset(new llvm::DenseMap<const Stmt *, uint64_t>);
892 void CodeGenPGO::emitCounterIncrement(CGBuilderTy &Builder, const Stmt *S,
1048 llvm::MDNode *CodeGenFunction::createProfileWeightsForLoop(const Stmt *Cond,
tools/clang/lib/CodeGen/CodeGenPGO.h 36 std::unique_ptr<llvm::DenseMap<const Stmt *, unsigned>> RegionCounterMap;
37 std::unique_ptr<llvm::DenseMap<const Stmt *, uint64_t>> StmtCountMap;
62 Optional<uint64_t> getStmtCount(const Stmt *S) {
73 void setCurrentStmt(const Stmt *S) {
103 void emitCounterIncrement(CGBuilderTy &Builder, const Stmt *S,
107 uint64_t getRegionCount(const Stmt *S) {
tools/clang/lib/CodeGen/CoverageMappingGen.cpp 205 SourceLocation getStart(const Stmt *S) {
213 SourceLocation getEnd(const Stmt *S) {
436 llvm::DenseMap<const Stmt *, unsigned> &CounterMap;
473 Counter getRegionCounter(const Stmt *S) {
660 Counter propagateCounts(Counter TopCount, const Stmt *S,
774 void extendRegion(const Stmt *S) {
786 void terminateRegion(const Stmt *S) {
811 Optional<SourceRange> findGapAreaBetween(const Stmt *AfterStmt,
812 const Stmt *BeforeStmt) {
839 llvm::DenseMap<const Stmt *, unsigned> &CounterMap, SourceManager &SM,
861 void VisitStmt(const Stmt *S) {
864 for (const Stmt *Child : S->children())
873 Stmt *Body = D->getBody();
1021 if (const Stmt *Inc = S->getInc()) {
1110 const Stmt *Body = S->getBody();
1119 for (const auto *Child : CS->children())
1194 if (const Stmt *Else = S->getElse()) {
tools/clang/lib/CodeGen/CoverageMappingGen.h 88 llvm::DenseMap<const Stmt *, unsigned> *CounterMap;
97 llvm::DenseMap<const Stmt *, unsigned> *CounterMap)
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp 3965 SmallVector<const Stmt *, 4> ArgVec;
tools/clang/lib/CodeGen/VarBypassDetector.cpp 20 void VarBypassDetector::Init(const Stmt *Body) {
53 bool VarBypassDetector::BuildScopeInformation(const Stmt *S,
66 case Stmt::IndirectGotoStmtClass:
69 case Stmt::SwitchStmtClass:
70 if (const Stmt *Init = cast<SwitchStmt>(S)->getInit()) {
82 case Stmt::GotoStmtClass:
86 case Stmt::DeclStmtClass: {
94 case Stmt::CaseStmtClass:
95 case Stmt::DefaultStmtClass:
96 case Stmt::LabelStmtClass:
104 for (const Stmt *SubStmt : S->children()) {
116 const Stmt *Next;
138 const Stmt *St = S.first;
tools/clang/lib/CodeGen/VarBypassDetector.h 44 llvm::SmallVector<std::pair<const Stmt *, unsigned>, 16> FromScopes;
46 llvm::DenseMap<const Stmt *, unsigned> ToScopes;
53 void Init(const Stmt *Body);
63 bool BuildScopeInformation(const Stmt *S, unsigned &origParentScope);
tools/clang/lib/Frontend/ASTConsumers.cpp 187 if (Stmt *Body = D->getBody()) {
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp 72 Stmt *CurrentBody;
124 SmallVector<Stmt *, 32> Stmts;
162 llvm::DenseMap<Stmt *, Stmt *> ReplacedNodes;
162 llvm::DenseMap<Stmt *, Stmt *> ReplacedNodes;
250 void ReplaceStmt(Stmt *Old, Stmt *New) {
250 void ReplaceStmt(Stmt *Old, Stmt *New) {
254 void ReplaceStmtWithRange(Stmt *Old, Stmt *New, SourceRange SrcRange) {
254 void ReplaceStmtWithRange(Stmt *Old, Stmt *New, SourceRange SrcRange) {
257 Stmt *ReplacingStmt = ReplacedNodes[Old];
347 Stmt *RewriteFunctionBodyOrGlobalInitializer(Stmt *S);
347 Stmt *RewriteFunctionBodyOrGlobalInitializer(Stmt *S);
348 Stmt *RewriteAtEncode(ObjCEncodeExpr *Exp);
349 Stmt *RewritePropertyOrImplicitGetter(PseudoObjectExpr *Pseudo);
350 Stmt *RewritePropertyOrImplicitSetter(PseudoObjectExpr *Pseudo);
351 Stmt *RewriteAtSelector(ObjCSelectorExpr *Exp);
352 Stmt *RewriteMessageExpr(ObjCMessageExpr *Exp);
353 Stmt *RewriteObjCStringLiteral(ObjCStringLiteral *Exp);
354 Stmt *RewriteObjCBoolLiteralExpr(ObjCBoolLiteralExpr *Exp);
355 Stmt *RewriteObjCBoxedExpr(ObjCBoxedExpr *Exp);
356 Stmt *RewriteObjCArrayLiteralExpr(ObjCArrayLiteral *Exp);
357 Stmt *RewriteObjCDictionaryLiteralExpr(ObjCDictionaryLiteral *Exp);
358 Stmt *RewriteObjCProtocolExpr(ObjCProtocolExpr *Exp);
359 Stmt *RewriteObjCTryStmt(ObjCAtTryStmt *S);
360 Stmt *RewriteObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt *S);
361 Stmt *RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S);
362 Stmt *RewriteObjCThrowStmt(ObjCAtThrowStmt *S);
363 Stmt *RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S,
365 Stmt *RewriteBreakStmt(BreakStmt *S);
366 Stmt *RewriteContinueStmt(ContinueStmt *S);
390 Stmt *RewriteBlockDeclRefExpr(DeclRefExpr *VD);
391 Stmt *RewriteLocalVariableExternalStorage(DeclRefExpr *DRE);
423 Stmt *SynthMessageExpr(ObjCMessageExpr *Exp,
462 Stmt *RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV);
476 Stmt *SynthesizeBlockCall(CallExpr *Exp, const Expr* BlockExp);
480 Stmt *SynthBlockInitExpr(BlockExpr *Exp,
485 void WarnAboutReturnGotoStmts(Stmt *S);
492 void GetBlockDeclRefExprs(Stmt *S);
493 void GetInnerBlockDeclRefExprs(Stmt *S,
1408 Stmt *RewriteModernObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *PseudoOp) {
1491 Stmt *Replacement = SynthMessageExpr(NewMsg);
1496 Stmt *RewriteModernObjC::RewritePropertyOrImplicitGetter(PseudoObjectExpr *PseudoOp) {
1574 Stmt *Replacement = SynthMessageExpr(NewMsg);
1602 Stmt *RewriteModernObjC::RewriteBreakStmt(BreakStmt *S) {
1632 Stmt *RewriteModernObjC::RewriteContinueStmt(ContinueStmt *S) {
1678 Stmt *RewriteModernObjC::RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S,
1858 Stmt *RewriteModernObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S) {
1907 void RewriteModernObjC::WarnAboutReturnGotoStmts(Stmt *S)
1910 for (Stmt *SubStmt : S->children())
1920 Stmt *RewriteModernObjC::RewriteObjCAutoreleasePoolStmt(ObjCAutoreleasePoolStmt *S) {
1929 Stmt *RewriteModernObjC::RewriteObjCTryStmt(ObjCAtTryStmt *S) {
2015 Stmt *body = finalStmt->getFinallyBody();
2033 Stmt *RewriteModernObjC::RewriteObjCThrowStmt(ObjCAtThrowStmt *S) {
2062 Stmt *RewriteModernObjC::RewriteAtEncode(ObjCEncodeExpr *Exp) {
2074 Stmt *RewriteModernObjC::RewriteAtSelector(ObjCSelectorExpr *Exp) {
2551 Stmt *RewriteModernObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) {
2596 Stmt *RewriteModernObjC::RewriteObjCBoolLiteralExpr(ObjCBoolLiteralExpr *Exp) {
2611 Stmt *RewriteModernObjC::RewriteObjCBoxedExpr(ObjCBoxedExpr *Exp) {
2694 Stmt *RewriteModernObjC::RewriteObjCArrayLiteralExpr(ObjCArrayLiteral *Exp) {
2815 Stmt *RewriteModernObjC::RewriteObjCDictionaryLiteralExpr(ObjCDictionaryLiteral *Exp) {
3187 Stmt *RewriteModernObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
3535 Stmt *ReplacingStmt = CE;
3552 Stmt *RewriteModernObjC::RewriteMessageExpr(ObjCMessageExpr *Exp) {
3553 Stmt *ReplacingStmt =
3580 Stmt *RewriteModernObjC::RewriteObjCProtocolExpr(ObjCProtocolExpr *Exp) {
4458 void RewriteModernObjC::GetBlockDeclRefExprs(Stmt *S) {
4459 for (Stmt *SubStmt : S->children())
4474 void RewriteModernObjC::GetInnerBlockDeclRefExprs(Stmt *S,
4477 for (Stmt *SubStmt : S->children())
4550 Stmt *RewriteModernObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) {
4567 Stmt *LHSStmt = SynthesizeBlockCall(Exp, LHSExp);
4569 Stmt *RHSStmt = SynthesizeBlockCall(Exp, RHSExp);
4662 Stmt *RewriteModernObjC::RewriteBlockDeclRefExpr(DeclRefExpr *DeclRefExp) {
4698 Stmt *RewriteModernObjC::RewriteLocalVariableExternalStorage(DeclRefExpr *DRE) {
5195 Stmt *RewriteModernObjC::SynthBlockInitExpr(BlockExpr *Exp,
5425 Stmt *RewriteModernObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) {
5425 Stmt *RewriteModernObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) {
5451 for (Stmt *&childStmt : S->children())
5453 Stmt *newStmt = RewriteFunctionBodyOrGlobalInitializer(childStmt);
5467 Stmt *SaveCurrentBody = CurrentBody;
5486 Stmt *blockTranscribed = SynthBlockInitExpr(BE, InnerBlockDeclRefs);
5633 Stmt *BlockCall = SynthesizeBlockCall(CE, CE->getCallee());
7437 Stmt *RewriteModernObjC::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) {
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp 71 Stmt *CurrentBody;
115 SmallVector<Stmt *, 32> Stmts;
143 llvm::DenseMap<Stmt *, Stmt *> ReplacedNodes;
143 llvm::DenseMap<Stmt *, Stmt *> ReplacedNodes;
201 void ReplaceStmt(Stmt *Old, Stmt *New) {
201 void ReplaceStmt(Stmt *Old, Stmt *New) {
205 void ReplaceStmtWithRange(Stmt *Old, Stmt *New, SourceRange SrcRange) {
205 void ReplaceStmtWithRange(Stmt *Old, Stmt *New, SourceRange SrcRange) {
208 Stmt *ReplacingStmt = ReplacedNodes[Old];
293 Stmt *RewriteFunctionBodyOrGlobalInitializer(Stmt *S);
293 Stmt *RewriteFunctionBodyOrGlobalInitializer(Stmt *S);
294 Stmt *RewriteAtEncode(ObjCEncodeExpr *Exp);
295 Stmt *RewritePropertyOrImplicitGetter(PseudoObjectExpr *Pseudo);
296 Stmt *RewritePropertyOrImplicitSetter(PseudoObjectExpr *Pseudo);
297 Stmt *RewriteAtSelector(ObjCSelectorExpr *Exp);
298 Stmt *RewriteMessageExpr(ObjCMessageExpr *Exp);
299 Stmt *RewriteObjCStringLiteral(ObjCStringLiteral *Exp);
300 Stmt *RewriteObjCProtocolExpr(ObjCProtocolExpr *Exp);
301 void RewriteTryReturnStmts(Stmt *S);
302 void RewriteSyncReturnStmts(Stmt *S, std::string buf);
303 Stmt *RewriteObjCTryStmt(ObjCAtTryStmt *S);
304 Stmt *RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S);
305 Stmt *RewriteObjCThrowStmt(ObjCAtThrowStmt *S);
306 Stmt *RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S,
308 Stmt *RewriteBreakStmt(BreakStmt *S);
309 Stmt *RewriteContinueStmt(ContinueStmt *S);
318 Stmt *RewriteBlockDeclRefExpr(DeclRefExpr *VD);
319 Stmt *RewriteLocalVariableExternalStorage(DeclRefExpr *DRE);
343 virtual Stmt *RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) = 0;
359 Stmt *SynthMessageExpr(ObjCMessageExpr *Exp,
386 Stmt *SynthesizeBlockCall(CallExpr *Exp, const Expr* BlockExp);
390 Stmt *SynthBlockInitExpr(BlockExpr *Exp,
395 void WarnAboutReturnGotoStmts(Stmt *S);
396 void HasReturnStmts(Stmt *S, bool &hasReturns);
403 void GetBlockDeclRefExprs(Stmt *S);
404 void GetInnerBlockDeclRefExprs(Stmt *S,
540 Stmt *RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) override;
1227 Stmt *RewriteObjC::RewritePropertyOrImplicitSetter(PseudoObjectExpr *PseudoOp) {
1305 Stmt *Replacement = SynthMessageExpr(NewMsg);
1310 Stmt *RewriteObjC::RewritePropertyOrImplicitGetter(PseudoObjectExpr *PseudoOp) {
1381 Stmt *Replacement = SynthMessageExpr(NewMsg);
1409 Stmt *RewriteObjC::RewriteBreakStmt(BreakStmt *S) {
1426 Stmt *RewriteObjC::RewriteContinueStmt(ContinueStmt *S) {
1472 Stmt *RewriteObjC::RewriteObjCForCollectionStmt(ObjCForCollectionStmt *S,
1642 Stmt *RewriteObjC::RewriteObjCSynchronizedStmt(ObjCAtSynchronizedStmt *S) {
1714 void RewriteObjC::WarnAboutReturnGotoStmts(Stmt *S)
1717 for (Stmt *SubStmt : S->children())
1727 void RewriteObjC::HasReturnStmts(Stmt *S, bool &hasReturns)
1730 for (Stmt *SubStmt : S->children())
1738 void RewriteObjC::RewriteTryReturnStmts(Stmt *S) {
1740 for (Stmt *SubStmt : S->children())
1759 void RewriteObjC::RewriteSyncReturnStmts(Stmt *S, std::string syncExitBuf) {
1761 for (Stmt *SubStmt : S->children())
1783 Stmt *RewriteObjC::RewriteObjCTryStmt(ObjCAtTryStmt *S) {
1823 Stmt *lastCatchBody = nullptr;
1909 Stmt *body = finalStmt->getFinallyBody();
1951 Stmt *RewriteObjC::RewriteObjCThrowStmt(ObjCAtThrowStmt *S) {
1977 Stmt *RewriteObjC::RewriteAtEncode(ObjCEncodeExpr *Exp) {
1989 Stmt *RewriteObjC::RewriteAtSelector(ObjCSelectorExpr *Exp) {
2476 Stmt *RewriteObjC::RewriteObjCStringLiteral(ObjCStringLiteral *Exp) {
2614 Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp,
2964 Stmt *ReplacingStmt = CE;
3009 Stmt *RewriteObjC::RewriteMessageExpr(ObjCMessageExpr *Exp) {
3010 Stmt *ReplacingStmt =
3037 Stmt *RewriteObjC::RewriteObjCProtocolExpr(ObjCProtocolExpr *Exp) {
3645 void RewriteObjC::GetBlockDeclRefExprs(Stmt *S) {
3646 for (Stmt *SubStmt : S->children())
3661 void RewriteObjC::GetInnerBlockDeclRefExprs(Stmt *S,
3664 for (Stmt *SubStmt : S->children())
3718 Stmt *RewriteObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) {
3735 Stmt *LHSStmt = SynthesizeBlockCall(Exp, LHSExp);
3737 Stmt *RHSStmt = SynthesizeBlockCall(Exp, RHSExp);
3830 Stmt *RewriteObjC::RewriteBlockDeclRefExpr(DeclRefExpr *DeclRefExp) {
3867 Stmt *RewriteObjC::RewriteLocalVariableExternalStorage(DeclRefExpr *DRE) {
4349 Stmt *RewriteObjC::SynthBlockInitExpr(BlockExpr *Exp,
4549 Stmt *RewriteObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) {
4549 Stmt *RewriteObjC::RewriteFunctionBodyOrGlobalInitializer(Stmt *S) {
4573 for (Stmt *&childStmt : S->children())
4575 Stmt *newStmt = RewriteFunctionBodyOrGlobalInitializer(childStmt);
4589 Stmt *SaveCurrentBody = CurrentBody;
4608 Stmt *blockTranscribed = SynthBlockInitExpr(BE, InnerBlockDeclRefs);
4735 Stmt *BlockCall = SynthesizeBlockCall(CE, CE->getCallee());
5790 Stmt *RewriteObjCFragileABI::RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) {
tools/clang/lib/Index/IndexBody.cpp 22 SmallVector<Stmt*, 16> StmtStack;
26 Stmt *getParentStmt() const {
36 bool dataTraverseStmtPre(Stmt *S) {
41 bool dataTraverseStmtPost(Stmt *S) {
73 const Stmt *Parent = *It;
232 Stmt *Containing = getParentStmt();
408 for (Stmt *SubStmt : Form->children()) {
471 void IndexingContext::indexBody(const Stmt *S, const NamedDecl *Parent,
tools/clang/lib/Index/IndexDecl.cpp 176 const Stmt *Body = D->getBody();
283 const Stmt *Body = D->getBody();
tools/clang/lib/Index/IndexTypeSourceInfo.cpp 201 bool TraverseStmt(Stmt *S) {
tools/clang/lib/Index/IndexingContext.h 118 void indexBody(const Stmt *S, const NamedDecl *Parent,
tools/clang/lib/Parse/ParseAST.cpp 118 Stmt::EnableStatistics();
186 Stmt::PrintStats();
tools/clang/lib/Parse/ParseStmt.cpp 695 Stmt *DeepestParsedCaseStmt = nullptr;
770 Stmt *NextDeepest = Case.get();
tools/clang/lib/Parse/Parser.cpp 1292 Stmt *GeneratedBody = Res ? Res->getBody() : nullptr;
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp 136 for (const Stmt *SubStmt : E->children())
254 const Stmt *Body, AnalysisDeclContext &AC) {
415 const Stmt *Term = B->getTerminatorStmt();
464 const Stmt *Term = B.getTerminatorStmt();
475 const Stmt *S = CS.getStmt();
636 static void CheckFallThroughForBody(Sema &S, const Decl *D, const Stmt *Body,
786 static void CreateIfFixit(Sema &S, const Stmt *If, const Stmt *Then,
786 static void CreateIfFixit(Sema &S, const Stmt *If, const Stmt *Then,
787 const Stmt *Else, bool CondVal,
845 const Stmt *Term = I->Terminator;
861 switch (Term ? Term->getStmtClass() : Stmt::DeclStmtClass) {
868 case Stmt::IfStmtClass: {
878 case Stmt::ConditionalOperatorClass: {
888 case Stmt::BinaryOperatorClass: {
908 case Stmt::WhileStmtClass:
915 case Stmt::ForStmtClass:
925 case Stmt::CXXForRangeStmtClass:
938 case Stmt::DoStmtClass:
947 case Stmt::CaseStmtClass:
952 case Stmt::DefaultStmtClass:
1065 const Stmt *L = B->getLabel();
1095 const Stmt *Term = P->getTerminatorStmt();
1137 const Stmt *LastStmt = getLastStmt(*P);
1184 static const AttributedStmt *asFallThroughAttr(const Stmt *S) {
1192 static const Stmt *getLastStmt(const CFGBlock &B) {
1193 if (const Stmt *Term = B.getTerminatorStmt())
1271 const Stmt *Label = B->getLabel();
1294 const Stmt *Term = B->getTerminatorStmt();
1319 const Stmt *S) {
1324 case Stmt::ForStmtClass:
1325 case Stmt::WhileStmtClass:
1326 case Stmt::CXXForRangeStmtClass:
1327 case Stmt::ObjCForCollectionStmtClass:
1329 case Stmt::DoStmtClass: {
1350 typedef std::pair<const Stmt *, WeakObjectUseMap::const_iterator>
1440 const Stmt *FirstRead = P.first;
2048 const Stmt *Body = D->getBody();
2077 .setAlwaysAdd(Stmt::BinaryOperatorClass)
2078 .setAlwaysAdd(Stmt::CompoundAssignOperatorClass)
2079 .setAlwaysAdd(Stmt::BlockExprClass)
2080 .setAlwaysAdd(Stmt::CStyleCastExprClass)
2081 .setAlwaysAdd(Stmt::DeclRefExprClass)
2082 .setAlwaysAdd(Stmt::ImplicitCastExprClass)
2083 .setAlwaysAdd(Stmt::UnaryOperatorClass)
2084 .setAlwaysAdd(Stmt::AttributedStmtClass);
2100 for (const Stmt *S : D.Stmts)
2108 for (const Stmt *S : D.Stmts) {
tools/clang/lib/Sema/CoroutineStmtBuilder.h 30 SmallVector<Stmt *, 4> ParamMovesVector;
38 Stmt *Body);
tools/clang/lib/Sema/JumpDiagnostics.cpp 65 llvm::DenseMap<Stmt*, unsigned> LabelAndGotoScopes;
66 SmallVector<Stmt*, 16> Jumps;
68 SmallVector<Stmt*, 4> IndirectJumps;
69 SmallVector<Stmt*, 4> AsmJumps;
73 JumpScopeChecker(Stmt *Body, Sema &S);
78 void BuildScopeInformation(Stmt *S, unsigned &origParentScope);
83 void DiagnoseIndirectOrAsmJump(Stmt *IG, unsigned IGScope, LabelDecl *Target,
85 void CheckJump(Stmt *From, Stmt *To, SourceLocation DiagLoc,
85 void CheckJump(Stmt *From, Stmt *To, SourceLocation DiagLoc,
96 JumpScopeChecker::JumpScopeChecker(Stmt *Body, Sema &s)
283 void JumpScopeChecker::BuildScopeInformation(Stmt *S,
296 case Stmt::AddrLabelExprClass:
300 case Stmt::ObjCForCollectionStmtClass: {
309 case Stmt::IndirectGotoStmtClass:
325 case Stmt::SwitchStmtClass:
328 if (Stmt *Init = cast<SwitchStmt>(S)->getInit()) {
338 case Stmt::GotoStmtClass:
345 case Stmt::GCCAsmStmtClass:
357 case Stmt::IfStmtClass: {
377 if (Stmt *Else = IS->getElse()) {
385 case Stmt::CXXTryStmtClass: {
393 if (Stmt *TryBlock = TS->getTryBlock())
410 case Stmt::SEHTryStmtClass: {
418 if (Stmt *TryBlock = TS->getTryBlock())
442 case Stmt::DeclStmtClass: {
453 case Stmt::ObjCAtTryStmtClass: {
464 if (Stmt *TryPart = AT->getTryBody())
493 case Stmt::ObjCAtSynchronizedStmtClass: {
512 case Stmt::ObjCAutoreleasePoolStmtClass: {
526 case Stmt::ExprWithCleanupsClass: {
541 case Stmt::MaterializeTemporaryExprClass: {
561 case Stmt::CaseStmtClass:
562 case Stmt::DefaultStmtClass:
563 case Stmt::LabelStmtClass:
571 for (Stmt *SubStmt : S->children()) {
583 Stmt *Next;
604 Stmt *Jump = Jumps.pop_back_val();
666 SmallVector<Stmt*, 4> GotoJumps = IsAsmGoto ? AsmJumps : IndirectJumps;
682 typedef std::pair<unsigned, Stmt*> JumpScope;
685 llvm::DenseMap<unsigned, Stmt*> JumpScopesMap;
686 for (SmallVectorImpl<Stmt *>::iterator I = GotoJumps.begin(),
689 Stmt *IG = *I;
693 Stmt *&Entry = JumpScopesMap[IGScope];
697 for (llvm::DenseMap<unsigned, Stmt *>::iterator I = JumpScopesMap.begin(),
806 static void DiagnoseIndirectOrAsmJumpStmt(Sema &S, Stmt *Jump,
828 void JumpScopeChecker::DiagnoseIndirectOrAsmJump(Stmt *Jump, unsigned JumpScope,
869 void JumpScopeChecker::CheckJump(Stmt *From, Stmt *To, SourceLocation DiagLoc,
869 void JumpScopeChecker::CheckJump(Stmt *From, Stmt *To, SourceLocation DiagLoc,
942 void Sema::DiagnoseInvalidJumps(Stmt *Body) {
tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp 71 Stmt *MultiplexExternalSemaSource::GetExternalDeclStmt(uint64_t Offset) {
73 if (Stmt *Result = Sources[i]->GetExternalDeclStmt(Offset))
tools/clang/lib/Sema/ScopeInfo.cpp 75 case Stmt::DeclRefExprClass:
79 case Stmt::MemberExprClass: {
85 case Stmt::ObjCIvarRefExprClass: {
91 case Stmt::PseudoObjectExprClass: {
tools/clang/lib/Sema/SemaChecking.cpp 258 if (Call->getStmtClass() != Stmt::CallExprClass) {
6820 case Stmt::BinaryConditionalOperatorClass:
6821 case Stmt::ConditionalOperatorClass: {
6867 case Stmt::ImplicitCastExprClass:
6871 case Stmt::OpaqueValueExprClass:
6878 case Stmt::PredefinedExprClass:
6884 case Stmt::DeclRefExprClass: {
6956 case Stmt::CallExprClass:
6957 case Stmt::CXXMemberCallExprClass: {
6993 case Stmt::ObjCMessageExprClass: {
7022 case Stmt::ObjCStringLiteralClass:
7023 case Stmt::StringLiteralClass: {
7047 case Stmt::BinaryOperatorClass: {
7078 case Stmt::UnaryOperatorClass: {
8183 case Stmt::ArraySubscriptExprClass:
8184 case Stmt::CallExprClass:
8185 case Stmt::CharacterLiteralClass:
8186 case Stmt::CXXBoolLiteralExprClass:
8187 case Stmt::DeclRefExprClass:
8188 case Stmt::FloatingLiteralClass:
8189 case Stmt::IntegerLiteralClass:
8190 case Stmt::MemberExprClass:
8191 case Stmt::ObjCArrayLiteralClass:
8192 case Stmt::ObjCBoolLiteralExprClass:
8193 case Stmt::ObjCBoxedExprClass:
8194 case Stmt::ObjCDictionaryLiteralClass:
8195 case Stmt::ObjCEncodeExprClass:
8196 case Stmt::ObjCIvarRefExprClass:
8197 case Stmt::ObjCMessageExprClass:
8198 case Stmt::ObjCPropertyRefExprClass:
8199 case Stmt::ObjCStringLiteralClass:
8200 case Stmt::ObjCSubscriptRefExprClass:
8201 case Stmt::ParenExprClass:
8202 case Stmt::StringLiteralClass:
8203 case Stmt::UnaryOperatorClass:
12119 for (Stmt *SubStmt : E->children()) {
12738 void VisitStmt(Stmt *S) {
13374 case Stmt::ArraySubscriptExprClass: {
13381 case Stmt::MemberExprClass: {
13385 case Stmt::OMPArraySectionExprClass: {
13392 case Stmt::UnaryOperatorClass: {
13408 case Stmt::ConditionalOperatorClass: {
13416 case Stmt::CXXOperatorCallExprClass: {
14040 const Stmt *Body,
14060 void Sema::DiagnoseEmptyLoopBody(const Stmt *S,
14061 const Stmt *PossibleBody) {
14065 const Stmt *Body;
14389 case Stmt::UnaryOperatorClass: {
14398 case Stmt::DeclRefExprClass: {
14404 case Stmt::IntegerLiteralClass: {
14414 case Stmt::BinaryConditionalOperatorClass:
14415 case Stmt::ConditionalOperatorClass: {
14430 case Stmt::BinaryOperatorClass: {
tools/clang/lib/Sema/SemaCoroutine.cpp 633 return cast<Stmt>(Suspend.get());
896 Stmt *Res = new (Context) CoreturnStmt(Loc, E, PCE, IsImplicit);
957 void Sema::CheckCompletedCoroutineBody(FunctionDecl *FD, Stmt *&Body) {
994 Stmt *Body)
tools/clang/lib/Sema/SemaDecl.cpp13646 void Sema::computeNRVO(Stmt *Body, FunctionScopeInfo *Scope) {
13709 Decl *Sema::ActOnFinishFunctionBody(Decl *D, Stmt *BodyArg) {
13757 Decl *Sema::ActOnFinishFunctionBody(Decl *dcl, Stmt *Body,
14030 for (const Stmt *S : Body->children()) {
tools/clang/lib/Sema/SemaDeclAttr.cpp 8130 bool isBodyLikeChildStmt(const Stmt *S, const Stmt *Parent) {
8130 bool isBodyLikeChildStmt(const Stmt *S, const Stmt *Parent) {
8132 case Stmt::IfStmtClass:
8135 case Stmt::WhileStmtClass:
8137 case Stmt::DoStmtClass:
8139 case Stmt::ForStmtClass:
8141 case Stmt::CXXForRangeStmtClass:
8143 case Stmt::ObjCForCollectionStmtClass:
8145 case Stmt::CaseStmtClass:
8146 case Stmt::DefaultStmtClass:
8154 const Stmt *Target;
8157 bool VisitStmt(Stmt *S) { return S != Target; }
8160 static bool isContained(const Stmt *Target, const Decl *D) {
8179 static const Stmt *findLastStmtThatUsesDecl(const Decl *D,
8184 const Stmt *S = *I;
8207 SmallVector<const Stmt *, 16> StmtStack;
8226 bool TraverseStmt(Stmt *S) {
8235 void IssueDiagnostics(Stmt *S) { TraverseStmt(S); }
8343 const Stmt *StmtOfUse = StmtStack.back();
8345 for (const Stmt *S : llvm::reverse(StmtStack)) {
8358 const Stmt *LastStmtOfUse = nullptr;
8453 Stmt *Body = nullptr;
tools/clang/lib/Sema/SemaDeclCXX.cpp 78 for (Stmt *SubStmt : Node->children())
1667 Stmt *Body,
1755 Stmt *Body = NewFD->getBody();
1963 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S,
1969 case Stmt::NullStmtClass:
1973 case Stmt::DeclStmtClass:
1983 case Stmt::ReturnStmtClass:
1995 case Stmt::CompoundStmtClass: {
2001 for (auto *BodyIt : CompStmt->body()) {
2009 case Stmt::AttributedStmtClass:
2014 case Stmt::IfStmtClass: {
2030 case Stmt::WhileStmtClass:
2031 case Stmt::DoStmtClass:
2032 case Stmt::ForStmtClass:
2033 case Stmt::CXXForRangeStmtClass:
2034 case Stmt::ContinueStmtClass:
2041 for (Stmt *SubStmt : S->children())
2048 case Stmt::SwitchStmtClass:
2049 case Stmt::CaseStmtClass:
2050 case Stmt::DefaultStmtClass:
2051 case Stmt::BreakStmtClass:
2056 for (Stmt *SubStmt : S->children())
2063 case Stmt::GCCAsmStmtClass:
2064 case Stmt::MSAsmStmtClass:
2066 case Stmt::CXXTryStmtClass:
2069 for (Stmt *SubStmt : S->children()) {
2077 case Stmt::CXXCatchStmtClass:
2109 Stmt *Body,
2148 for (Stmt *SubStmt : Body->children()) {
12078 return Call.getAs<Stmt>();
12255 Stmt *InitStmt = new (S.Context) DeclStmt(DeclGroupRef(IterationVar),Loc,Loc);
12486 SmallVector<Stmt*, 8> Statements;
12613 Statements.push_back(Copy.getAs<Stmt>());
12624 Statements.push_back(Return.getAs<Stmt>());
12639 CopyAssignOperator->setBody(Body.getAs<Stmt>());
12848 SmallVector<Stmt*, 8> Statements;
12984 Statements.push_back(Move.getAs<Stmt>());
12996 Statements.push_back(Return.getAs<Stmt>());
13011 MoveAssignOperator->setBody(Body.getAs<Stmt>());
13148 ActOnCompoundStmt(Loc, Loc, None, /*isStmtExpr=*/false).getAs<Stmt>());
13273 Loc, Loc, None, /*isStmtExpr=*/ false).getAs<Stmt>());
13330 Stmt *Return = BuildReturnStmt(Conv->getLocation(), FunctionRef).get();
13385 Stmt *ReturnS = Return.get();
15288 static void SearchForReturnInStmt(Sema &Self, Stmt *S) {
15289 for (Stmt *SubStmt : S->children()) {
tools/clang/lib/Sema/SemaExceptionSpec.cpp 975 for (const Stmt *SubStmt : E->children()) {
tools/clang/lib/Sema/SemaExpr.cpp10105 case Stmt::ObjCArrayLiteralClass:
10106 case Stmt::ObjCDictionaryLiteralClass:
10107 case Stmt::ObjCStringLiteralClass:
10108 case Stmt::ObjCBoxedExprClass:
10167 case Stmt::ObjCStringLiteralClass:
10170 case Stmt::ObjCArrayLiteralClass:
10173 case Stmt::ObjCDictionaryLiteralClass:
10176 case Stmt::BlockExprClass:
10178 case Stmt::ObjCBoxedExprClass: {
10181 case Stmt::IntegerLiteralClass:
10182 case Stmt::FloatingLiteralClass:
10183 case Stmt::CharacterLiteralClass:
10184 case Stmt::ObjCBoolLiteralExprClass:
10185 case Stmt::CXXBoolLiteralExprClass:
10188 case Stmt::ImplicitCastExprClass: {
12218 case Stmt::DeclRefExprClass:
12220 case Stmt::MemberExprClass:
12228 case Stmt::ArraySubscriptExprClass: {
12238 case Stmt::UnaryOperatorClass: {
12250 case Stmt::ParenExprClass:
12252 case Stmt::ImplicitCastExprClass:
15053 StmtResult TransformLambdaBody(LambdaExpr *E, Stmt *Body) {
17091 bool Sema::DiagRuntimeBehavior(SourceLocation Loc, ArrayRef<const Stmt*> Stmts,
17134 bool Sema::DiagRuntimeBehavior(SourceLocation Loc, const Stmt *Statement,
tools/clang/lib/Sema/SemaExprCXX.cpp 6548 Stmt *Sema::MaybeCreateStmtWithCleanups(Stmt *SubStmt) {
6548 Stmt *Sema::MaybeCreateStmtWithCleanups(Stmt *SubStmt) {
8039 StmtResult Sema::ActOnFinishFullStmt(Stmt *FullStmt) {
tools/clang/lib/Sema/SemaExprObjC.cpp 3357 ACCResult VisitStmt(Stmt *s) {
tools/clang/lib/Sema/SemaInit.cpp 930 for (const Stmt *Init : *IL)
6960 case Stmt::DeclRefExprClass: {
6983 case Stmt::UnaryOperatorClass: {
6994 case Stmt::OMPArraySectionExprClass: {
7001 case Stmt::ConditionalOperatorClass:
7002 case Stmt::BinaryConditionalOperatorClass: {
7207 case Stmt::UnaryOperatorClass: {
7226 case Stmt::BinaryOperatorClass: {
7242 case Stmt::ConditionalOperatorClass:
7243 case Stmt::BinaryConditionalOperatorClass: {
7256 case Stmt::BlockExprClass:
7263 case Stmt::AddrLabelExprClass:
tools/clang/lib/Sema/SemaLambda.cpp 1531 ExprResult Sema::ActOnLambdaExpr(SourceLocation StartLoc, Stmt *Body,
tools/clang/lib/Sema/SemaOpenMP.cpp 2149 void Sema::EndOpenMPDSABlock(Stmt *CurDirective) {
2411 bool VisitStmt(const Stmt *S) {
2412 for (const Stmt *Child : S->children()) {
3033 for (Stmt *CC : C->children()) {
3042 void VisitStmt(Stmt *S) {
3043 for (Stmt *C : S->children()) {
3668 for (Stmt *VarRef : Clause->children()) {
4237 Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc) {
4255 Stmt *S = AStmt;
4666 for (Stmt *CC : C->children()) {
5217 Stmt *AStmt,
5334 Optional<unsigned> doesDependOnLoopCounter(const Stmt *S, bool IsInitializer);
5346 bool checkAndSetInit(Stmt *S, bool EmitDiags = true);
5605 bool VisitStmt(const Stmt *S) {
5607 for (const Stmt *Child : S->children())
5628 OpenMPIterationSpaceChecker::doesDependOnLoopCounter(const Stmt *S,
5640 bool OpenMPIterationSpaceChecker::checkAndSetInit(Stmt *S, bool EmitDiags) {
6465 void Sema::ActOnOpenMPLoopInitialization(SourceLocation ForLoc, Stmt *Init) {
6550 OpenMPDirectiveKind DKind, Stmt *S, Sema &SemaRef, DSAStackTy &DSA,
6592 Stmt *Init = For ? For->getInit() : CXXFor->getBeginStmt();
6850 static Stmt *buildPreInits(ASTContext &Context,
6861 static Stmt *
6898 Expr *OrderedLoopCountExpr, Stmt *AStmt, Sema &SemaRef,
6941 Stmt *CurStmt = AStmt->IgnoreContainers(/* IgnoreCaptured */ true);
7645 Sema::ActOnOpenMPSimdDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
7684 Sema::ActOnOpenMPForDirective(ArrayRef<OMPClause *> Clauses, Stmt *AStmt,
7720 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
7759 Stmt *AStmt,
7775 for (Stmt *SectionStmt : llvm::make_range(std::next(S.begin()), S.end())) {
7796 StmtResult Sema::ActOnOpenMPSectionDirective(Stmt *AStmt,
7812 Stmt *AStmt,
7842 StmtResult Sema::ActOnOpenMPMasterDirective(Stmt *AStmt,
7857 Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc) {
7915 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
7959 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
8003 Stmt *AStmt, SourceLocation StartLoc,
8018 for (Stmt *SectionStmt : llvm::make_range(std::next(S.begin()), S.end())) {
8041 Stmt *AStmt, SourceLocation StartLoc,
8076 Stmt *AStmt,
8099 Stmt *AStmt,
8234 bool checkStatement(Stmt *S, unsigned DiagId = 0, unsigned NoteId = 0);
8325 bool OpenMPAtomicUpdateChecker::checkStatement(Stmt *S, unsigned DiagId,
8418 Stmt *AStmt,
8448 Stmt *Body = CS->getCapturedStmt();
8698 Stmt *First = CS->body_front();
8699 Stmt *Second = CS->body_back();
8851 Stmt *AStmt,
8880 const Stmt *S = CS->IgnoreContainers(/*IgnoreCaptured=*/true);
8917 Stmt *AStmt, SourceLocation StartLoc,
8947 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9014 Stmt *AStmt,
9040 SourceLocation EndLoc, Stmt *AStmt) {
9077 SourceLocation EndLoc, Stmt *AStmt) {
9114 Stmt *AStmt) {
9145 Stmt *AStmt, SourceLocation StartLoc,
9250 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9286 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9335 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9371 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9420 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9475 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9500 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9544 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9601 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9657 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9712 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9768 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9813 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9875 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9937 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
9986 Stmt *AStmt,
10017 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10060 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10115 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10174 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10979 Stmt *HelperValStmt = nullptr;
11011 Stmt *HelperValStmt = nullptr;
11085 Stmt **HelperValStmt = nullptr) {
11125 Stmt *HelperValStmt = nullptr;
11642 Stmt *HelperValStmt = nullptr;
12680 bool VisitStmt(Stmt *S) {
12681 for (Stmt *Child : S->children()) {
14493 Stmt *HelperValStmt = nullptr;
15945 Stmt *HelperValStmt = nullptr;
15972 Stmt *HelperValStmt = nullptr;
15999 Stmt *HelperValStmt = nullptr;
16019 Stmt *HelperValStmt = nullptr;
16040 Stmt *HelperValStmt = nullptr;
16083 Stmt *HelperValStmt = nullptr;
tools/clang/lib/Sema/SemaOverload.cpp 7157 alignas(CallExpr) char Buffer[sizeof(CallExpr) + sizeof(Stmt *)];
tools/clang/lib/Sema/SemaStmt.cpp 58 return StmtResult(FE.getAs<Stmt>());
218 void Sema::DiagnoseUnusedExprResult(const Stmt *S) {
389 ArrayRef<Stmt *> Elts, bool isStmtExpr) {
499 void Sema::ActOnCaseStmtBody(Stmt *S, Stmt *SubStmt) {
499 void Sema::ActOnCaseStmtBody(Stmt *S, Stmt *SubStmt) {
505 Stmt *SubStmt, Scope *CurScope) {
518 SourceLocation ColonLoc, Stmt *SubStmt) {
542 Stmt *SubStmt) {
563 Sema::ActOnIfStmt(SourceLocation IfLoc, bool IsConstexpr, Stmt *InitStmt,
565 Stmt *thenStmt, SourceLocation ElseLoc,
566 Stmt *elseStmt) {
590 Stmt *InitStmt, ConditionResult Cond,
591 Stmt *thenStmt, SourceLocation ElseLoc,
592 Stmt *elseStmt) {
727 Stmt *InitStmt, ConditionResult Cond) {
847 Sema::ActOnFinishSwitchStmt(SourceLocation SwitchLoc, Stmt *Switch,
848 Stmt *BodyStmt) {
1317 Stmt *Body) {
1336 Sema::ActOnDoStmt(SourceLocation DoLoc, Stmt *Body,
1391 void VisitStmt(Stmt *S) {
1458 DeclMatcher(Sema &S, DeclSetVector &Decls, Stmt *Statement) :
1531 Expr *Third, Stmt *Body) {
1578 bool ProcessIterationStmt(Sema &S, Stmt* Statement, bool &Increment,
1627 BreakContinueFinder(Sema &S, const Stmt* Body) :
1644 if (const Stmt *Init = S->getInit())
1646 if (const Stmt *CondVar = S->getConditionVariableDeclStmt())
1648 if (const Stmt *Cond = S->getCond())
1653 if (const Stmt *Body = S->getBody())
1661 if (const Stmt *Init = S->getInit())
1678 if (const Stmt *Init = S->getInit())
1680 if (const Stmt *Range = S->getRangeStmt())
1682 if (const Stmt *Begin = S->getBeginStmt())
1684 if (const Stmt *End = S->getEndStmt())
1691 if (const Stmt *Element = S->getElement())
1693 if (const Stmt *Collection = S->getCollection())
1709 void CheckForRedundantIteration(Sema &S, Expr *Third, Stmt *Body) {
1720 Stmt *LastStmt = CS->body_back();
1764 Stmt *First, ConditionResult Second,
1766 Stmt *Body) {
1903 Stmt *First, Expr *collection,
2094 SourceLocation CoawaitLoc, Stmt *InitStmt,
2095 Stmt *First, SourceLocation ColonLoc,
2306 Stmt *InitStmt,
2307 Stmt *LoopVarDecl,
2357 SourceLocation CoawaitLoc, Stmt *InitStmt,
2358 SourceLocation ColonLoc, Stmt *RangeDecl,
2359 Stmt *Begin, Stmt *End, Expr *Cond,
2359 Stmt *Begin, Stmt *End, Expr *Cond,
2360 Expr *Inc, Stmt *LoopVarDecl,
2691 StmtResult Sema::FinishObjCForCollectionStmt(Stmt *S, Stmt *B) {
2691 StmtResult Sema::FinishObjCForCollectionStmt(Stmt *S, Stmt *B) {
2858 StmtResult Sema::FinishCXXForRangeStmt(Stmt *S, Stmt *B) {
2858 StmtResult Sema::FinishCXXForRangeStmt(Stmt *S, Stmt *B) {
3822 Stmt *Body) {
3831 Sema::ActOnObjCAtFinallyStmt(SourceLocation AtLoc, Stmt *Body) {
3836 Sema::ActOnObjCAtTryStmt(SourceLocation AtLoc, Stmt *Try,
3837 MultiStmtArg CatchStmts, Stmt *Finally) {
3930 Stmt *SyncBody) {
3940 Stmt *HandlerBlock) {
3947 Sema::ActOnObjCAutoreleasePoolStmt(SourceLocation AtLoc, Stmt *Body) {
4056 StmtResult Sema::ActOnCXXTryBlock(SourceLocation TryLoc, Stmt *TryBlock,
4057 ArrayRef<Stmt *> Handlers) {
4153 Stmt *TryBlock, Stmt *Handler) {
4153 Stmt *TryBlock, Stmt *Handler) {
4190 Stmt *Block) {
4210 StmtResult Sema::ActOnFinishSEHFinallyBlock(SourceLocation Loc, Stmt *Block) {
4232 Stmt *Nested)
4244 Stmt *Nested) {
4421 StmtResult Sema::ActOnCapturedRegionEnd(Stmt *S) {
tools/clang/lib/Sema/SemaStmtAsm.cpp 150 for (Stmt *Child : E->children()) {
tools/clang/lib/Sema/SemaStmtAttr.cpp 24 static Attr *handleFallThroughAttr(Sema &S, Stmt *St, const ParsedAttr &A,
53 static Attr *handleSuppressAttr(Sema &S, Stmt *St, const ParsedAttr &A,
76 static Attr *handleLoopHintAttr(Sema &S, Stmt *St, const ParsedAttr &A,
89 if (St->getStmtClass() != Stmt::DoStmtClass &&
90 St->getStmtClass() != Stmt::ForStmtClass &&
91 St->getStmtClass() != Stmt::CXXForRangeStmtClass &&
92 St->getStmtClass() != Stmt::WhileStmtClass) {
280 static Attr *handleOpenCLUnrollHint(Sema &S, Stmt *St, const ParsedAttr &A,
321 static Attr *ProcessStmtAttribute(Sema &S, Stmt *St, const ParsedAttr &A,
347 StmtResult Sema::ProcessStmtAttributes(Stmt *S,
tools/clang/lib/Sema/SemaTemplate.cpp 2490 bool TraverseStmt(Stmt *S, DataRecursionQueue *Q = nullptr) {
3128 bool handledStmt(Stmt *E, raw_ostream &OS) override {
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp 2893 Sema::SubstStmt(Stmt *S, const MultiLevelTemplateArgumentList &TemplateArgs) {
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp 4206 Stmt *Pattern = nullptr;
tools/clang/lib/Sema/SemaTemplateVariadic.cpp 133 bool TraverseStmt(Stmt *S) {
tools/clang/lib/Sema/TreeTransform.h 134 static inline StmtResult Owned(Stmt *S) { return S; }
342 StmtResult TransformStmt(Stmt *S, StmtDiscardKind SDK = SDK_Discarded);
621 StmtResult TransformSEHHandler(Stmt *Handler);
663 StmtResult TransformLambdaBody(LambdaExpr *E, Stmt *Body);
666 StmtResult SkipLambdaBody(LambdaExpr *E, Stmt *Body);
1246 StmtResult RebuildCaseStmtBody(Stmt *S, Stmt *Body) {
1246 StmtResult RebuildCaseStmtBody(Stmt *S, Stmt *Body) {
1257 Stmt *SubStmt) {
1267 SourceLocation ColonLoc, Stmt *SubStmt) {
1277 Stmt *SubStmt) {
1286 Sema::ConditionResult Cond, Stmt *Init, Stmt *Then,
1286 Sema::ConditionResult Cond, Stmt *Init, Stmt *Then,
1287 SourceLocation ElseLoc, Stmt *Else) {
1296 StmtResult RebuildSwitchStmtStart(SourceLocation SwitchLoc, Stmt *Init,
1306 Stmt *Switch, Stmt *Body) {
1306 Stmt *Switch, Stmt *Body) {
1315 Sema::ConditionResult Cond, Stmt *Body) {
1323 StmtResult RebuildDoStmt(SourceLocation DoLoc, Stmt *Body,
1335 Stmt *Init, Sema::ConditionResult Cond,
1337 Stmt *Body) {
1457 Stmt *TryBody,
1459 Stmt *Finally) {
1483 Stmt *Body) {
1493 Stmt *Body) {
1514 Stmt *AStmt, SourceLocation StartLoc,
2001 Expr *Object, Stmt *Body) {
2010 Stmt *Body) {
2019 Stmt *Element,
2022 Stmt *Body) {
2055 Stmt *Handler) {
2064 StmtResult RebuildCXXTryStmt(SourceLocation TryLoc, Stmt *TryBlock,
2065 ArrayRef<Stmt *> Handlers) {
2074 SourceLocation CoawaitLoc, Stmt *Init,
2075 SourceLocation ColonLoc, Stmt *Range,
2076 Stmt *Begin, Stmt *End, Expr *Cond,
2076 Stmt *Begin, Stmt *End, Expr *Cond,
2077 Expr *Inc, Stmt *LoopVar,
2117 Stmt *Nested) {
2126 StmtResult FinishCXXForRangeStmt(Stmt *ForRange, Stmt *Body) {
2126 StmtResult FinishCXXForRangeStmt(Stmt *ForRange, Stmt *Body) {
2131 Stmt *TryBlock, Stmt *Handler) {
2131 Stmt *TryBlock, Stmt *Handler) {
2136 Stmt *Block) {
2140 StmtResult RebuildSEHFinallyStmt(SourceLocation Loc, Stmt *Block) {
2558 case Stmt::CXXStaticCastExprClass:
2563 case Stmt::CXXDynamicCastExprClass:
2568 case Stmt::CXXReinterpretCastExprClass:
2574 case Stmt::CXXConstCastExprClass:
3373 StmtResult TreeTransform<Derived>::TransformStmt(Stmt *S, StmtDiscardKind SDK) {
3378 case Stmt::NoStmtClass: break;
3432 case Stmt::NoStmtClass: break;
6658 const Stmt *ExprResult = S->getStmtExprResult();
6661 SmallVector<Stmt*, 8> Statements;
6662 for (auto *B : S->body()) {
6678 Statements.push_back(Result.getAs<Stmt>());
7249 if (auto *OnFallthrough = S->getFallthroughHandler()) {
7256 if (auto *OnException = S->getExceptionHandler()) {
7263 if (auto *OnAllocFailure = S->getReturnStmtOnAllocFailure()) {
7289 if (auto *ReturnStmt = S->getReturnStmt()) {
7374 SmallVector<Stmt*, 8> CatchStmts;
7597 SmallVector<Stmt *, 8> Handlers;
7604 Handlers.push_back(Handler.getAs<Stmt>());
7854 StmtResult TreeTransform<Derived>::TransformSEHHandler(Stmt *Handler) {
7897 Stmt *CS = D->getInnermostCapturedStmt()->getCapturedStmt();
11700 TreeTransform<Derived>::TransformLambdaBody(LambdaExpr *E, Stmt *S) {
11706 TreeTransform<Derived>::SkipLambdaBody(LambdaExpr *E, Stmt *S) {
tools/clang/lib/Serialization/ASTReader.cpp 7916 Stmt *ASTReader::GetExternalDeclStmt(uint64_t Offset) {
tools/clang/lib/Serialization/ASTReaderStmt.cpp 129 void VisitStmt(Stmt *S);
149 void ASTStmtReader::VisitStmt(Stmt *S) {
162 SmallVector<Stmt *, 16> Stmts;
385 SmallVector<Stmt*, 16> Exprs;
669 E->getTrailingObjects<Stmt *>()[I] = Record.readSubStmt();
1120 Stmt **Stmts = E->getTrailingObjects<Stmt *>();
1120 Stmt **Stmts = E->getTrailingObjects<Stmt *>();
2407 Stmt *ASTReader::ReadStmt(ModuleFile &F) {
2436 Stmt *ASTReader::ReadStmtFromStream(ModuleFile &F) {
2442 llvm::DenseMap<uint64_t, Stmt *> StmtEntries;
2450 Stmt::EmptyShell Empty;
2474 Stmt *S = nullptr;
tools/clang/lib/Serialization/ASTWriterStmt.cpp 53 void VisitStmt(Stmt *S);
69 void ASTStmtWriter::VisitStmt(Stmt *S) {
83 for (auto *CS : S->body())
350 for (Stmt *S : CoroStmt->children())
367 for (Stmt *S : E->children())
386 for (Stmt *S : E->children())
1029 Stmt **Stmts = E->getTrailingObjects<Stmt *>();
1029 Stmt **Stmts = E->getTrailingObjects<Stmt *>();
2024 for (Stmt *S : D->dependent_counters())
2026 for (Stmt *S : D->dependent_inits())
2028 for (Stmt *S : D->finals_conditions())
2394 void ASTWriter::WriteSubStmt(Stmt *S) {
2404 llvm::DenseMap<Stmt *, uint64_t>::iterator I = SubStmtEntries.find(S);
2415 Stmt *S;
2416 llvm::DenseSet<Stmt *> &ParentStmts;
2418 ParentStmtInserterRAII(Stmt *S, llvm::DenseSet<Stmt *> &ParentStmts)
2418 ParentStmtInserterRAII(Stmt *S, llvm::DenseSet<Stmt *> &ParentStmts)
tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp 148 void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &C) const {
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp 30 void checkLocation(SVal l, bool isLoad, const Stmt* S,
35 void ArrayBoundChecker::checkLocation(SVal l, bool isLoad, const Stmt* LoadS,
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp 41 void checkLocation(SVal l, bool isLoad, const Stmt*S,
116 const Stmt* LoadS,
tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp 891 const Stmt *Element = FCS->getElement();
tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp 28 void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
55 void BoolAssignmentChecker::checkBind(SVal loc, SVal val, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp 234 const Stmt *First,
235 const Stmt *Second) const;
237 void emitNullArgBug(CheckerContext &C, ProgramStateRef State, const Stmt *S,
240 const Stmt *S, StringRef WarningMsg) const;
242 const Stmt *S, StringRef WarningMsg) const;
563 const Stmt *First, const Stmt *Second) const {
563 const Stmt *First, const Stmt *Second) const {
582 const Stmt *S, StringRef WarningMsg) const {
599 ProgramStateRef State, const Stmt *S,
621 const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp 108 void VisitChildren(Stmt *S);
109 void VisitStmt(Stmt *S) {
272 void WalkAST::VisitChildren(Stmt *S) {
273 for (Stmt *Child : S->children())
tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp 88 void VisitStmt(Stmt *S) { VisitChildren(S); }
90 void VisitChildren(Stmt *S);
121 void WalkAST::VisitChildren(Stmt *S) {
122 for (Stmt *Child : S->children())
186 for (Stmt *Child : S->children())
tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp 33 void VisitStmt(Stmt *S) { VisitChildren(S); }
34 void VisitChildren(Stmt *S);
38 void WalkAST::VisitChildren(Stmt *S) {
39 for (Stmt *Child : S->children())
tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp 127 void checkBranchCondition(const Stmt *Condition, CheckerContext &Ctx) const {}
154 void checkLocation(SVal Loc, bool IsLoad, const Stmt *S,
164 void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &) const {}
tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp 69 const Stmt *Parent = PM.getParent(Cast);
tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp 317 void observeStmt(const Stmt *S, const CFGBlock *block,
365 const Stmt *parent = Parents.getParentIgnoreParenCasts(U);
460 void operator()(const Stmt *S) {
tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp 327 class ReportStmts : public Checker<check::PreStmt<Stmt>> {
331 void checkPreStmt(const Stmt *S, CheckerContext &C) const {
tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp 111 const Stmt *S = N->getStmtForDiagnostics();
tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp 36 void reportBug(ProgramStateRef State, const Stmt *S, CheckerContext &C) const;
39 void checkLocation(SVal location, bool isLoad, const Stmt* S,
41 void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
62 case Stmt::DeclRefExprClass: {
71 case Stmt::MemberExprClass: {
79 case Stmt::ObjCIvarRefExprClass: {
90 static const Expr *getDereferenceExpr(const Stmt *S, bool IsBind=false){
119 void DereferenceChecker::reportBug(ProgramStateRef State, const Stmt *S,
137 case Stmt::ArraySubscriptExprClass: {
145 case Stmt::OMPArraySectionExprClass: {
153 case Stmt::UnaryOperatorClass: {
160 case Stmt::MemberExprClass: {
170 case Stmt::ObjCIvarRefExprClass: {
194 void DereferenceChecker::checkLocation(SVal l, bool isLoad, const Stmt* S,
246 void DereferenceChecker::checkBind(SVal L, SVal V, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp 74 void VisitStmt(const Stmt *S) { VisitChildren(S); }
78 void VisitChildren(const Stmt *S) {
79 for (const Stmt *Child : S->children())
146 const Stmt *Body = M->getBody();
tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp 37 const Stmt *S = N->getLocationAs<PreStmt>()->getStmt();
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp 60 const MemRegion *Reg, const Stmt *ReportedNode,
71 const Stmt *ReportedNode,
106 const Stmt *S = N->getStmtForDiagnostics();
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp 98 const Stmt *ReportedNode = nullptr) const;
902 const Stmt *ReportedNode) const {
940 const Stmt *S = N->getStmtForDiagnostics();
tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp 28 static bool isIdenticalStmt(const ASTContext &Ctx, const Stmt *Stmt1,
29 const Stmt *Stmt2, bool IgnoreSideEffects = false);
107 const Stmt *Stmt1 = I->getThen();
108 const Stmt *Stmt2 = I->getElse();
137 const Stmt *Else = Stmt2;
306 static bool isIdenticalStmt(const ASTContext &Ctx, const Stmt *Stmt1,
307 const Stmt *Stmt2, bool IgnoreSideEffects) {
351 case Stmt::CallExprClass:
352 case Stmt::ArraySubscriptExprClass:
353 case Stmt::OMPArraySectionExprClass:
354 case Stmt::ImplicitCastExprClass:
355 case Stmt::ParenExprClass:
356 case Stmt::BreakStmtClass:
357 case Stmt::ContinueStmtClass:
358 case Stmt::NullStmtClass:
360 case Stmt::CStyleCastExprClass: {
366 case Stmt::ReturnStmtClass: {
373 case Stmt::ForStmtClass: {
391 case Stmt::DoStmtClass: {
403 case Stmt::WhileStmtClass: {
415 case Stmt::IfStmtClass: {
430 case Stmt::CompoundStmtClass: {
448 case Stmt::CompoundAssignOperatorClass:
449 case Stmt::BinaryOperatorClass: {
454 case Stmt::CharacterLiteralClass: {
459 case Stmt::DeclRefExprClass: {
464 case Stmt::IntegerLiteralClass: {
474 case Stmt::FloatingLiteralClass: {
479 case Stmt::StringLiteralClass: {
484 case Stmt::MemberExprClass: {
489 case Stmt::UnaryOperatorClass: {
tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp 287 const Stmt *S = N->getStmtForDiagnostics();
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp 255 void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &C) const;
749 void IteratorChecker::checkBind(SVal Loc, SVal Val, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp 159 void VisitStmt(const Stmt *S) { VisitChildren(S); }
165 void VisitChildren(const Stmt *S) {
166 for (const auto *Child : S->children()) {
tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp 124 void VisitChildren(Stmt *S) {
125 for (Stmt *Child : S->children())
129 void VisitStmt(Stmt *S) { VisitChildren(S); }
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp 1052 void VisitStmt(const Stmt *S) { VisitChildren(S); }
1058 void VisitChildren(const Stmt *S) {
1059 for (const Stmt *Child : S->children()) {
1079 const Stmt *Body = M->getBody();
1205 llvm::SmallVector<const clang::Stmt *, 8> MatchingStatements;
1224 void reportPluralMisuseError(const Stmt *S) const;
1382 const Stmt *S) const {
tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp 487 const Stmt *AllocStmt = AllocNode->getStmtForDiagnostics();
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp 97 const Stmt *S);
138 const Stmt *S;
143 RefState(Kind k, const Stmt *s, AllocationFamily family)
155 const Stmt *getStmt() const { return S; }
161 static RefState getAllocated(AllocationFamily family, const Stmt *s) {
168 static RefState getReleased(AllocationFamily family, const Stmt *s) {
171 static RefState getRelinquished(AllocationFamily family, const Stmt *s) {
372 void checkLocation(SVal l, bool isLoad, const Stmt *S,
585 bool checkUseAfterFree(SymbolRef Sym, CheckerContext &C, const Stmt *S) const;
590 const Stmt *S) const;
626 const Stmt *AllocDeallocStmt,
708 const Stmt *Stmt) {
719 const Stmt *Stmt) {
730 const RefState *RSPrev, const Stmt *Stmt) {
744 const Stmt *Stmt) {
1631 const Stmt *S) {
1941 const Stmt *AllocDeallocStmt,
2594 const Stmt *AllocationStmt = AllocNode->getStmtForDiagnostics();
2814 if (const Stmt *Body = FD->getBody())
2837 const Stmt *S) const {
2848 const Stmt *S) const {
2870 void MallocChecker::checkLocation(SVal l, bool isLoad, const Stmt *S,
3179 const Stmt *S = N->getStmtForDiagnostics();
3246 const Stmt *S = RSCurr->getStmt();
tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp 31 typedef llvm::PointerUnion<const Stmt *, const VarDecl *> ExprParent;
59 void VisitChild(ExprParent Parent, const Stmt *S) {
66 void VisitChildren(const Stmt *S) {
67 for (const Stmt *Child : S->children())
85 TypeCallPair VisitStmt(const Stmt *S) {
tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp 292 const Stmt *S = N->getStmtForDiagnostics();
404 if (const Stmt *MoveStmt = MoveNode->getStmtForDiagnostics())
tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp 162 void checkLocation(SVal loc, bool isLoad, const Stmt *S,
202 const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp 43 void checkLocation(SVal l, bool isLoad, const Stmt *S,
68 const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp 96 void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
157 const Stmt *ValueExpr = nullptr,
162 const Stmt *ValueExpr = nullptr) const {
199 NullabilityState(Nullability Nullab, const Stmt *Source = nullptr)
202 const Stmt *getNullabilitySource() const { return Source; }
221 const Stmt *Source;
310 const Stmt *S = TrackedNullab->getNullabilitySource();
435 CheckerContext &C, const Stmt *ValueExpr, bool SuppressPath) const {
895 const Stmt *NullabilitySource =
918 const Stmt *NullabilitySource = ComputedNullab == RetNullability
987 static const Expr * matchValueExprForBind(const Stmt *S) {
1011 static bool isARCNilInitializedLocal(CheckerContext &C, const Stmt *S) {
1053 void NullabilityChecker::checkBind(SVal L, SVal V, const Stmt *S,
1102 const Stmt *ValueStmt = S;
1155 const Stmt *NullabilitySource = BinOp ? BinOp->getRHS() : S;
1163 const Stmt *NullabilitySource = BinOp ? BinOp->getLHS() : S;
tools/clang/lib/StaticAnalyzer/Checkers/NumberObjectConversionChecker.cpp 66 (Result.Nodes.getNodeAs<Stmt>("pedantic") != nullptr);
102 const Stmt *Conv = Result.Nodes.getNodeAs<Stmt>("conv");
102 const Stmt *Conv = Result.Nodes.getNodeAs<Stmt>("conv");
116 (Result.Nodes.getNodeAs<Stmt>("comparison") != nullptr);
tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp 78 void VisitChildren(Stmt *S);
79 void VisitStmt(Stmt *S) { VisitChildren(S); }
153 void WalkAST::VisitChildren(Stmt *S) {
154 for (Stmt *Child : S->children())
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp 74 void checkLocation(SVal location, bool isLoad, const Stmt *S,
76 void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
301 const Stmt *S,
316 void ObjCSelfInitChecker::checkBind(SVal loc, SVal val, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp 46 void checkLocation(SVal l, bool isLoad, const Stmt *S,
53 void reportUseAfterDealloc(SymbolRef Sym, StringRef Desc, const Stmt *S,
129 void ObjCSuperDeallocChecker::checkLocation(SVal L, bool IsLoad, const Stmt *S,
176 const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp 32 static void Scan(IvarUsageMap& M, const Stmt *S) {
59 for (const Stmt *SubStmt : S->children())
tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp 40 const auto *MarkedStmt = Match.getNodeAs<Stmt>(WarnAtNode);
40 const auto *MarkedStmt = Match.getNodeAs<Stmt>(WarnAtNode);
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp 233 for (const Stmt *Child : Ex->children()) {
1137 void RetainCountChecker::checkBind(SVal loc, SVal val, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h 294 void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp 203 static std::string findAllocatedObjectName(const Stmt *S, QualType QT) {
213 const Stmt *S,
503 const Stmt *S = N->getLocation().castAs<StmtPoint>().getStmt();
555 const Stmt *S = N->getLocation().castAs<StmtPoint>().getStmt();
589 const Stmt *S = N->getLocation().castAs<StmtPoint>().getStmt();
596 for (const Stmt *Child : S->children())
678 const Stmt *CE = CEP->getCallExpr();
680 const Stmt *RecExpr = ME->getInstanceReceiver();
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h 79 const Stmt *AllocStmt;
tools/clang/lib/StaticAnalyzer/Checkers/RunLoopAutoreleaseLeakChecker.cpp 65 static bool seenBefore(const Stmt *Parent, const Stmt *A, const Stmt *B) {
65 static bool seenBefore(const Stmt *Parent, const Stmt *A, const Stmt *B) {
65 static bool seenBefore(const Stmt *Parent, const Stmt *A, const Stmt *B) {
66 for (const Stmt *C : Parent->children()) {
87 const Stmt *DeclBody = D->getBody();
101 const auto *RLR = Match.getNodeAs<Stmt>(RunLoopRunBind);
101 const auto *RLR = Match.getNodeAs<Stmt>(RunLoopRunBind);
tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp 30 const Stmt *S;
32 StreamState(Kind k, const Stmt *s) : K(k), S(s) {}
43 static StreamState getOpened(const Stmt *s) { return StreamState(Opened, s); }
44 static StreamState getClosed(const Stmt *s) { return StreamState(Closed, s); }
45 static StreamState getOpenFailed(const Stmt *s) {
48 static StreamState getEscaped(const Stmt *s) {
tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp 44 ProgramStateRef taint::addTaint(ProgramStateRef State, const Stmt *S,
120 bool taint::isTainted(ProgramStateRef State, const Stmt *S,
216 const Stmt *S = N->getStmtForDiagnostics();
tools/clang/lib/StaticAnalyzer/Checkers/Taint.h 31 addTaint(ProgramStateRef State, const Stmt *S, const LocationContext *LCtx,
60 bool isTainted(ProgramStateRef State, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp 85 void checkBranchCondition(const Stmt *Condition, CheckerContext &C) const;
212 void TestAfterDivZeroChecker::checkBranchCondition(const Stmt *Condition,
tools/clang/lib/StaticAnalyzer/Checkers/TraversalChecker.cpp 30 void checkBranchCondition(const Stmt *Condition, CheckerContext &C) const;
36 void TraversalDumper::checkBranchCondition(const Stmt *Condition,
40 const Stmt *Parent = dyn_cast<ObjCForCollectionStmt>(Condition);
tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp 40 for (const Stmt *SubStmt : Ex->children())
54 void checkBranchCondition(const Stmt *Condition, CheckerContext &Ctx) const;
59 void UndefBranchChecker::checkBranchCondition(const Stmt *Condition,
tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp 36 static const DeclRefExpr *FindBlockDeclRefExpr(const Stmt *S,
42 for (const Stmt *Child : S->children())
tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp 29 void checkBind(SVal location, SVal val, const Stmt *S,
35 const Stmt *StoreE,
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp 180 const Stmt *CallSite = Context.getStackFrame()->getCallSite();
515 static const Stmt *getMethodBody(const CXXMethodDecl *M) {
561 const Stmt *MethodBody = getMethodBody(M);
574 const auto *FirstGuard = Guards[0].getNodeAs<Stmt>("guard");
574 const auto *FirstGuard = Guards[0].getNodeAs<Stmt>("guard");
tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp 39 static inline const Stmt *getUnreachableStmt(const CFGBlock *CB);
121 if (const Stmt *label = CB->getLabel())
122 if (label->getStmtClass() == Stmt::DefaultStmtClass)
149 if (const Stmt *S = getUnreachableStmt(CB)) {
155 if (const Stmt *Parent = PM->getParent(S))
200 const Stmt *UnreachableCodeChecker::getUnreachableStmt(const CFGBlock *CB) {
207 if (const Stmt *S = CB->getTerminatorStmt())
235 const Stmt *cond = pred->getTerminatorCondition();
tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp 287 if (const Stmt *StartCallStmt = StartNode->getStmtForDiagnostics())
383 const Stmt *S = N->getStmtForDiagnostics();
tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp 63 void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
162 const Stmt *P = PM.getParentIgnoreParenCasts(Call.getOriginExpr());
191 void VforkChecker::checkBind(SVal L, SVal V, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp 167 const Stmt *getParent(const Stmt *S) const {
167 const Stmt *getParent(const Stmt *S) const {
251 generateDiagForGotoOP(const PathDiagnosticConstruct &C, const Stmt *S,
259 generateDiagForBinaryOP(const PathDiagnosticConstruct &C, const Stmt *T,
288 const Stmt *CallSite = CExit.getCalleeContext()->getCallSite();
532 const Stmt *Start = CF->getStartLocation().asStmt();
533 const Stmt *End = CF->getEndLocation().asStmt();
576 if (const Stmt *S = C.getCurrentNode()->getNextStmtForDiagnostics())
613 static const Stmt *getEnclosingParent(const Stmt *S, const ParentMap &PM) {
613 static const Stmt *getEnclosingParent(const Stmt *S, const ParentMap &PM) {
617 const Stmt *Parent = PM.getParentIgnoreParens(S);
622 case Stmt::ForStmtClass:
623 case Stmt::DoStmtClass:
624 case Stmt::WhileStmtClass:
625 case Stmt::ObjCForCollectionStmtClass:
626 case Stmt::CXXForRangeStmtClass:
636 getEnclosingStmtLocation(const Stmt *S, const LocationContext *LC,
643 while (const Stmt *Parent = getEnclosingParent(S, LC->getParentMap())) {
645 case Stmt::BinaryOperatorClass: {
651 case Stmt::CompoundStmtClass:
652 case Stmt::StmtExprClass:
654 case Stmt::ChooseExprClass:
661 case Stmt::BinaryConditionalOperatorClass:
662 case Stmt::ConditionalOperatorClass:
670 case Stmt::CXXForRangeStmtClass:
674 case Stmt::DoStmtClass:
676 case Stmt::ForStmtClass:
680 case Stmt::IfStmtClass:
684 case Stmt::ObjCForCollectionStmtClass:
688 case Stmt::WhileStmtClass:
747 if (const Stmt *S = Dst->getLabel()) {
756 case Stmt::DefaultStmtClass:
761 case Stmt::CaseStmtClass: {
796 const PathDiagnosticConstruct &C, const Stmt *S,
807 const PathDiagnosticConstruct &C, const Stmt *T, const CFGBlock *Src,
860 const Stmt *T = Src->getTerminatorStmt();
869 case Stmt::GotoStmtClass:
870 case Stmt::IndirectGotoStmtClass: {
871 if (const Stmt *S = C.getCurrentNode()->getNextStmtForDiagnostics())
876 case Stmt::SwitchStmtClass: {
881 case Stmt::BreakStmtClass:
882 case Stmt::ContinueStmtClass: {
892 case Stmt::BinaryConditionalOperatorClass:
893 case Stmt::ConditionalOperatorClass: {
905 if (const Stmt *S = End.asStmt())
914 case Stmt::BinaryOperatorClass: {
922 case Stmt::DoStmtClass:
930 if (const Stmt *S = End.asStmt())
939 if (const Stmt *S = End.asStmt())
948 case Stmt::WhileStmtClass:
949 case Stmt::ForStmtClass:
956 if (const Stmt *S = End.asStmt())
964 if (const Stmt *S = End.asStmt())
974 case Stmt::IfStmtClass: {
977 if (const Stmt *S = End.asStmt())
998 static bool isLoop(const Stmt *Term) {
1000 case Stmt::ForStmtClass:
1001 case Stmt::WhileStmtClass:
1002 case Stmt::ObjCForCollectionStmtClass:
1003 case Stmt::CXXForRangeStmtClass:
1017 static bool isContainedByStmt(const ParentMap &PM, const Stmt *S,
1018 const Stmt *SubS) {
1027 static const Stmt *getStmtBeforeCond(const ParentMap &PM, const Stmt *Term,
1027 static const Stmt *getStmtBeforeCond(const ParentMap &PM, const Stmt *Term,
1032 const Stmt *S = SP->getStmt();
1041 static bool isInLoopBody(const ParentMap &PM, const Stmt *S, const Stmt *Term) {
1041 static bool isInLoopBody(const ParentMap &PM, const Stmt *S, const Stmt *Term) {
1042 const Stmt *LoopBody = nullptr;
1044 case Stmt::CXXForRangeStmtClass: {
1053 case Stmt::ForStmtClass: {
1060 case Stmt::ObjCForCollectionStmtClass: {
1065 case Stmt::WhileStmtClass:
1102 static const Stmt *getTerminatorCondition(const CFGBlock *B) {
1103 const Stmt *S = B->getTerminatorCondition();
1238 if (const Stmt *Loop = BE->getSrc()->getLoopTarget()) {
1240 const Stmt *Body = nullptr;
1270 if (const Stmt *Term = BSrc->getTerminatorStmt()) {
1274 const Stmt *TermCond = getTerminatorCondition(BSrc);
1332 static const Stmt *getStmtParent(const Stmt *S, const ParentMap &PM) {
1332 static const Stmt *getStmtParent(const Stmt *S, const ParentMap &PM) {
1353 static bool isConditionForTerminator(const Stmt *S, const Stmt *Cond) {
1353 static bool isConditionForTerminator(const Stmt *S, const Stmt *Cond) {
1355 case Stmt::BinaryOperatorClass: {
1361 case Stmt::IfStmtClass:
1363 case Stmt::ForStmtClass:
1365 case Stmt::WhileStmtClass:
1367 case Stmt::DoStmtClass:
1369 case Stmt::ChooseExprClass:
1371 case Stmt::IndirectGotoStmtClass:
1373 case Stmt::SwitchStmtClass:
1375 case Stmt::BinaryConditionalOperatorClass:
1377 case Stmt::ConditionalOperatorClass: {
1383 case Stmt::ObjCForCollectionStmtClass:
1385 case Stmt::CXXForRangeStmtClass: {
1394 static bool isIncrementOrInitInForLoop(const Stmt *S, const Stmt *FL) {
1394 static bool isIncrementOrInitInForLoop(const Stmt *S, const Stmt *FL) {
1424 const Stmt *InnerStmt = nullptr;
1436 const Stmt *Dst = Piece->getEndLocation().getStmtOrNull();
1458 if (const Stmt *PrevSrc =
1460 const Stmt *PrevSrcParent = getStmtParent(PrevSrc, PM);
1498 const Stmt *s1Start = PieceI->getStartLocation().getStmtOrNull();
1499 const Stmt *s1End = PieceI->getEndLocation().getStmtOrNull();
1532 const Stmt *s2Start = PieceNextI->getStartLocation().getStmtOrNull();
1533 const Stmt *s2End = PieceNextI->getEndLocation().getStmtOrNull();
1592 const Stmt *S) {
1622 const Stmt *s1Start = PieceI->getStartLocation().getStmtOrNull();
1623 const Stmt *s1End = PieceI->getEndLocation().getStmtOrNull();
1646 const Stmt *s2Start = PieceNextI->getStartLocation().getStmtOrNull();
1647 const Stmt *s2End = PieceNextI->getEndLocation().getStmtOrNull();
1667 static bool lexicalContains(const ParentMap &PM, const Stmt *X, const Stmt *Y) {
1667 static bool lexicalContains(const ParentMap &PM, const Stmt *X, const Stmt *Y) {
1690 const Stmt *start = PieceI->getStartLocation().getStmtOrNull();
1691 const Stmt *end = PieceI->getEndLocation().getStmtOrNull();
1696 const Stmt *endParent = PM.getParent(end);
1783 const Stmt *s1Start = PieceI->getStartLocation().getStmtOrNull();
1784 const Stmt *s1End = PieceI->getEndLocation().getStmtOrNull();
1785 const Stmt *level1 = getStmtParent(s1Start, PM);
1786 const Stmt *level2 = getStmtParent(s1End, PM);
1799 const Stmt *s2Start = PieceNextI->getStartLocation().getStmtOrNull();
1800 const Stmt *s2End = PieceNextI->getEndLocation().getStmtOrNull();
1801 const Stmt *level3 = getStmtParent(s2Start, PM);
1802 const Stmt *level4 = getStmtParent(s2End, PM);
2309 const Stmt *PathSensitiveBugReport::getStmt() const {
2314 const Stmt *S = nullptr;
2340 const Stmt *S = ErrorNode->getStmtForDiagnostics();
3047 const Stmt* Body = Signature->getBody();
3069 const Stmt *S, const SourceManager &SM,
3095 } else if (const Stmt *S = N->getStmtForDiagnostics()) {
3099 const Stmt *P = N->getParentMap().getParent(S);
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp 97 const Expr *bugreporter::getDerefExpr(const Stmt *S) {
853 const Stmt *S = N->getStmtForDiagnostics();
924 static void addVisitorIfNecessary(const ExplodedNode *Node, const Stmt *S,
1468 const Stmt *S = PS->getStmt();
1665 const Stmt *CurTerminatorStmt = nullptr;
1669 const Stmt *CurStmt = SP->getStmt();
1777 if (const Stmt *ElseCond = Else->getTerminatorCondition())
1883 if (const Stmt *term = srcBlk->getTerminatorStmt()) {
2080 const Expr *NilReceiverBRVisitor::getNilReceiver(const Stmt *S,
2101 const Stmt *S = P->getStmt();
2163 if (const Stmt *Term = SrcBlock->getTerminatorStmt()) {
2191 const Stmt *Term, const ExplodedNode *N, const CFGBlock *srcBlk,
2214 case Stmt::IfStmtClass:
2217 case Stmt::ConditionalOperatorClass:
2220 case Stmt::BinaryOperatorClass:
2274 case Stmt::BinaryOperatorClass:
2279 case Stmt::DeclRefExprClass:
2284 case Stmt::MemberExprClass:
2289 case Stmt::UnaryOperatorClass: {
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp 456 bool CallEvent::isCallStmt(const Stmt *S) {
556 Stmt* Body = AD->getBody(IsAutosynthesized);
1041 const Stmt *S = PM.getParentIgnoreParenCasts(getOriginExpr());
1049 case Stmt::ObjCPropertyRefExprClass:
1052 case Stmt::ObjCSubscriptRefExprClass:
1386 const Stmt *CallSite = CalleeCtx->getCallSite();
1417 const Stmt *Trigger;
1430 CallEventRef<> CallEventManager::getCall(const Stmt *S, ProgramStateRef State,
tools/clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp 22 bool containsMacro(const Stmt *S) {
29 for (const Stmt *Child : S->children())
37 bool containsEnum(const Stmt *S) {
43 for (const Stmt *Child : S->children())
51 bool containsStaticLocal(const Stmt *S) {
59 for (const Stmt *Child : S->children())
67 bool containsBuiltinOffsetOf(const Stmt *S) {
71 for (const Stmt *Child : S->children())
80 parseAssignment(const Stmt *S) {
tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp 157 const Stmt *S;
162 const Stmt *s, ExprEngine &eng, bool wasInlined = false)
187 const Stmt *S,
319 const Stmt *NodeEx; /* Will become a CFGStmt */
320 const Stmt *BoundEx;
324 SVal loc, bool isLoad, const Stmt *NodeEx,
325 const Stmt *BoundEx,
353 const Stmt *NodeEx,
354 const Stmt *BoundEx,
369 const Stmt *S;
374 SVal loc, SVal val, const Stmt *s, ExprEngine &eng,
396 const Stmt *S, ExprEngine &Eng,
472 const Stmt *Condition;
476 const Stmt *Cond, ExprEngine &eng)
494 void CheckerManager::runCheckersForBranchCondition(const Stmt *Condition,
556 const Stmt *S;
561 const Stmt *s, ExprEngine &eng,
587 const Stmt *S,
tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp 297 if (const Stmt *Term = B->getTerminatorStmt()) {
302 case Stmt::CXXBindTemporaryExprClass:
308 case Stmt::DeclStmtClass:
312 case Stmt::BinaryOperatorClass: // '&&' and '||'
316 case Stmt::BinaryConditionalOperatorClass:
317 case Stmt::ConditionalOperatorClass:
325 case Stmt::ChooseExprClass:
329 case Stmt::CXXTryStmtClass:
341 case Stmt::DoStmtClass:
345 case Stmt::CXXForRangeStmtClass:
349 case Stmt::ForStmtClass:
353 case Stmt::ContinueStmtClass:
354 case Stmt::BreakStmtClass:
355 case Stmt::GotoStmtClass:
358 case Stmt::IfStmtClass:
362 case Stmt::IndirectGotoStmtClass: {
374 case Stmt::ObjCForCollectionStmtClass:
388 case Stmt::SwitchStmtClass: {
396 case Stmt::WhileStmtClass:
400 case Stmt::GCCAsmStmtClass:
424 void CoreEngine::HandleBranch(const Stmt *Cond, const Stmt *Term,
424 void CoreEngine::HandleBranch(const Stmt *Cond, const Stmt *Term,
tools/clang/lib/StaticAnalyzer/Core/Environment.cpp 41 case Stmt::OpaqueValueExprClass:
44 case Stmt::ExprWithCleanupsClass:
47 case Stmt::ConstantExprClass:
50 case Stmt::CXXBindTemporaryExprClass:
53 case Stmt::SubstNonTypeTemplateParmExprClass:
64 static const Stmt *ignoreTransparentExprs(const Stmt *S) {
64 static const Stmt *ignoreTransparentExprs(const Stmt *S) {
70 EnvironmentEntry::EnvironmentEntry(const Stmt *S, const LocationContext *L)
87 const Stmt *S = Entry.getStmt();
91 case Stmt::CXXBindTemporaryExprClass:
92 case Stmt::ExprWithCleanupsClass:
93 case Stmt::GenericSelectionExprClass:
94 case Stmt::OpaqueValueExprClass:
95 case Stmt::ConstantExprClass:
96 case Stmt::ParenExprClass:
97 case Stmt::SubstNonTypeTemplateParmExprClass:
100 case Stmt::AddrLabelExprClass:
101 case Stmt::CharacterLiteralClass:
102 case Stmt::CXXBoolLiteralExprClass:
103 case Stmt::CXXScalarValueInitExprClass:
104 case Stmt::ImplicitValueInitExprClass:
105 case Stmt::IntegerLiteralClass:
106 case Stmt::ObjCBoolLiteralExprClass:
107 case Stmt::CXXNullPtrLiteralExprClass:
108 case Stmt::ObjCStringLiteralClass:
109 case Stmt::StringLiteralClass:
110 case Stmt::TypeTraitExprClass:
111 case Stmt::SizeOfPackExprClass:
115 case Stmt::ReturnStmtClass: {
252 const Stmt *S = I->first.getStmt();
264 const Stmt *S = I->first.getStmt();
tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp 300 if (const Stmt *S = getStmtForDiagnostics())
322 const Stmt *ExplodedNode::getStmtForDiagnostics() const {
353 const Stmt *ExplodedNode::getNextStmtForDiagnostics() const {
355 if (const Stmt *S = N->getStmtForDiagnostics()) {
359 case Stmt::ChooseExprClass:
360 case Stmt::BinaryConditionalOperatorClass:
361 case Stmt::ConditionalOperatorClass:
363 case Stmt::BinaryOperatorClass: {
380 const Stmt *ExplodedNode::getPreviousStmtForDiagnostics() const {
382 if (const Stmt *S = N->getStmtForDiagnostics())
388 const Stmt *ExplodedNode::getCurrentOrPreviousStmtForDiagnostics() const {
389 if (const Stmt *S = getStmtForDiagnostics())
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp 127 if (const Stmt *S = getItem().getStmtOrNull())
147 const Stmt *S = getItem().getStmtOrNull();
664 const Stmt *S,
690 const Stmt *ReferenceStmt,
692 const Stmt *DiagnosticStmt,
768 void ExprEngine::ProcessStmt(const Stmt *currStmt, ExplodedNode *Pred) {
798 void ExprEngine::ProcessLoopExit(const Stmt* S, ExplodedNode *Pred) {
990 const Stmt *Arg = DE->getArgument();
1196 void ExprEngine::Visit(const Stmt *S, ExplodedNode *Pred,
1208 case Stmt::CXXDependentScopeMemberExprClass:
1209 case Stmt::CXXInheritedCtorInitExprClass:
1210 case Stmt::CXXTryStmtClass:
1211 case Stmt::CXXTypeidExprClass:
1212 case Stmt::CXXUuidofExprClass:
1213 case Stmt::CXXFoldExprClass:
1214 case Stmt::MSPropertyRefExprClass:
1215 case Stmt::MSPropertySubscriptExprClass:
1216 case Stmt::CXXUnresolvedConstructExprClass:
1217 case Stmt::DependentScopeDeclRefExprClass:
1218 case Stmt::ArrayTypeTraitExprClass:
1219 case Stmt::ExpressionTraitExprClass:
1220 case Stmt::UnresolvedLookupExprClass:
1221 case Stmt::UnresolvedMemberExprClass:
1222 case Stmt::TypoExprClass:
1223 case Stmt::CXXNoexceptExprClass:
1224 case Stmt::PackExpansionExprClass:
1225 case Stmt::SubstNonTypeTemplateParmPackExprClass:
1226 case Stmt::FunctionParmPackExprClass:
1227 case Stmt::CoroutineBodyStmtClass:
1228 case Stmt::CoawaitExprClass:
1229 case Stmt::DependentCoawaitExprClass:
1230 case Stmt::CoreturnStmtClass:
1231 case Stmt::CoyieldExprClass:
1232 case Stmt::SEHTryStmtClass:
1233 case Stmt::SEHExceptStmtClass:
1234 case Stmt::SEHLeaveStmtClass:
1235 case Stmt::SEHFinallyStmtClass:
1236 case Stmt::OMPParallelDirectiveClass:
1237 case Stmt::OMPSimdDirectiveClass:
1238 case Stmt::OMPForDirectiveClass:
1239 case Stmt::OMPForSimdDirectiveClass:
1240 case Stmt::OMPSectionsDirectiveClass:
1241 case Stmt::OMPSectionDirectiveClass:
1242 case Stmt::OMPSingleDirectiveClass:
1243 case Stmt::OMPMasterDirectiveClass:
1244 case Stmt::OMPCriticalDirectiveClass:
1245 case Stmt::OMPParallelForDirectiveClass:
1246 case Stmt::OMPParallelForSimdDirectiveClass:
1247 case Stmt::OMPParallelSectionsDirectiveClass:
1248 case Stmt::OMPTaskDirectiveClass:
1249 case Stmt::OMPTaskyieldDirectiveClass:
1250 case Stmt::OMPBarrierDirectiveClass:
1251 case Stmt::OMPTaskwaitDirectiveClass:
1252 case Stmt::OMPTaskgroupDirectiveClass:
1253 case Stmt::OMPFlushDirectiveClass:
1254 case Stmt::OMPOrderedDirectiveClass:
1255 case Stmt::OMPAtomicDirectiveClass:
1256 case Stmt::OMPTargetDirectiveClass:
1257 case Stmt::OMPTargetDataDirectiveClass:
1258 case Stmt::OMPTargetEnterDataDirectiveClass:
1259 case Stmt::OMPTargetExitDataDirectiveClass:
1260 case Stmt::OMPTargetParallelDirectiveClass:
1261 case Stmt::OMPTargetParallelForDirectiveClass:
1262 case Stmt::OMPTargetUpdateDirectiveClass:
1263 case Stmt::OMPTeamsDirectiveClass:
1264 case Stmt::OMPCancellationPointDirectiveClass:
1265 case Stmt::OMPCancelDirectiveClass:
1266 case Stmt::OMPTaskLoopDirectiveClass:
1267 case Stmt::OMPTaskLoopSimdDirectiveClass:
1268 case Stmt::OMPMasterTaskLoopDirectiveClass:
1269 case Stmt::OMPMasterTaskLoopSimdDirectiveClass:
1270 case Stmt::OMPParallelMasterTaskLoopDirectiveClass:
1271 case Stmt::OMPDistributeDirectiveClass:
1272 case Stmt::OMPDistributeParallelForDirectiveClass:
1273 case Stmt::OMPDistributeParallelForSimdDirectiveClass:
1274 case Stmt::OMPDistributeSimdDirectiveClass:
1275 case Stmt::OMPTargetParallelForSimdDirectiveClass:
1276 case Stmt::OMPTargetSimdDirectiveClass:
1277 case Stmt::OMPTeamsDistributeDirectiveClass:
1278 case Stmt::OMPTeamsDistributeSimdDirectiveClass:
1279 case Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
1280 case Stmt::OMPTeamsDistributeParallelForDirectiveClass:
1281 case Stmt::OMPTargetTeamsDirectiveClass:
1282 case Stmt::OMPTargetTeamsDistributeDirectiveClass:
1283 case Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:
1284 case Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
1285 case Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:
1286 case Stmt::CapturedStmtClass: {
1292 case Stmt::ParenExprClass:
1294 case Stmt::GenericSelectionExprClass:
1298 case Stmt::BreakStmtClass:
1299 case Stmt::CaseStmtClass:
1300 case Stmt::CompoundStmtClass:
1301 case Stmt::ContinueStmtClass:
1302 case Stmt::CXXForRangeStmtClass:
1303 case Stmt::DefaultStmtClass:
1304 case Stmt::DoStmtClass:
1305 case Stmt::ForStmtClass:
1306 case Stmt::GotoStmtClass:
1307 case Stmt::IfStmtClass:
1308 case Stmt::IndirectGotoStmtClass:
1309 case Stmt::LabelStmtClass:
1310 case Stmt::NoStmtClass:
1311 case Stmt::NullStmtClass:
1312 case Stmt::SwitchStmtClass:
1313 case Stmt::WhileStmtClass:
1317 case Stmt::ObjCSubscriptRefExprClass:
1318 case Stmt::ObjCPropertyRefExprClass:
1321 case Stmt::GNUNullExprClass: {
1330 case Stmt::ObjCAtSynchronizedStmtClass:
1337 case Stmt::ExprWithCleanupsClass:
1341 case Stmt::CXXBindTemporaryExprClass: {
1353 case Stmt::DesignatedInitExprClass:
1354 case Stmt::DesignatedInitUpdateExprClass:
1355 case Stmt::ArrayInitLoopExprClass:
1356 case Stmt::ArrayInitIndexExprClass:
1357 case Stmt::ExtVectorElementExprClass:
1358 case Stmt::ImaginaryLiteralClass:
1359 case Stmt::ObjCAtCatchStmtClass:
1360 case Stmt::ObjCAtFinallyStmtClass:
1361 case Stmt::ObjCAtTryStmtClass:
1362 case Stmt::ObjCAutoreleasePoolStmtClass:
1363 case Stmt::ObjCEncodeExprClass:
1364 case Stmt::ObjCIsaExprClass:
1365 case Stmt::ObjCProtocolExprClass:
1366 case Stmt::ObjCSelectorExprClass:
1367 case Stmt::ParenListExprClass:
1368 case Stmt::ShuffleVectorExprClass:
1369 case Stmt::ConvertVectorExprClass:
1370 case Stmt::VAArgExprClass:
1371 case Stmt::CUDAKernelCallExprClass:
1372 case Stmt::OpaqueValueExprClass:
1373 case Stmt::AsTypeExprClass:
1374 case Stmt::ConceptSpecializationExprClass:
1375 case Stmt::CXXRewrittenBinaryOperatorClass:
1380 case Stmt::PredefinedExprClass:
1381 case Stmt::AddrLabelExprClass:
1382 case Stmt::AttributedStmtClass:
1383 case Stmt::IntegerLiteralClass:
1384 case Stmt::FixedPointLiteralClass:
1385 case Stmt::CharacterLiteralClass:
1386 case Stmt::ImplicitValueInitExprClass:
1387 case Stmt::CXXScalarValueInitExprClass:
1388 case Stmt::CXXBoolLiteralExprClass:
1389 case Stmt::ObjCBoolLiteralExprClass:
1390 case Stmt::ObjCAvailabilityCheckExprClass:
1391 case Stmt::FloatingLiteralClass:
1392 case Stmt::NoInitExprClass:
1393 case Stmt::SizeOfPackExprClass:
1394 case Stmt::StringLiteralClass:
1395 case Stmt::SourceLocExprClass:
1396 case Stmt::ObjCStringLiteralClass:
1397 case Stmt::CXXPseudoDestructorExprClass:
1398 case Stmt::SubstNonTypeTemplateParmExprClass:
1399 case Stmt::CXXNullPtrLiteralExprClass:
1400 case Stmt::OMPArraySectionExprClass:
1401 case Stmt::TypeTraitExprClass: {
1410 case Stmt::CXXDefaultArgExprClass:
1411 case Stmt::CXXDefaultInitExprClass: {
1454 case Stmt::CXXStdInitializerListExprClass:
1495 case Stmt::ArraySubscriptExprClass:
1501 case Stmt::GCCAsmStmtClass:
1507 case Stmt::MSAsmStmtClass:
1513 case Stmt::BlockExprClass:
1519 case Stmt::LambdaExprClass:
1530 case Stmt::BinaryOperatorClass: {
1562 case Stmt::CXXOperatorCallExprClass: {
1587 case Stmt::CallExprClass:
1588 case Stmt::CXXMemberCallExprClass:
1589 case Stmt::UserDefinedLiteralClass:
1595 case Stmt::CXXCatchStmtClass:
1601 case Stmt::CXXTemporaryObjectExprClass:
1602 case Stmt::CXXConstructExprClass:
1608 case Stmt::CXXNewExprClass: {
1623 case Stmt::CXXDeleteExprClass: {
1638 case Stmt::ChooseExprClass: { // __builtin_choose_expr
1646 case Stmt::CompoundAssignOperatorClass:
1652 case Stmt::CompoundLiteralExprClass:
1658 case Stmt::BinaryConditionalOperatorClass:
1659 case Stmt::ConditionalOperatorClass: { // '?' operator
1667 case Stmt::CXXThisExprClass:
1673 case Stmt::DeclRefExprClass: {
1681 case Stmt::DeclStmtClass:
1687 case Stmt::ImplicitCastExprClass:
1688 case Stmt::CStyleCastExprClass:
1689 case Stmt::CXXStaticCastExprClass:
1690 case Stmt::CXXDynamicCastExprClass:
1691 case Stmt::CXXReinterpretCastExprClass:
1692 case Stmt::CXXConstCastExprClass:
1693 case Stmt::CXXFunctionalCastExprClass:
1694 case Stmt::BuiltinBitCastExprClass:
1695 case Stmt::ObjCBridgedCastExprClass: {
1720 case Stmt::InitListExprClass:
1726 case Stmt::MemberExprClass:
1732 case Stmt::AtomicExprClass:
1738 case Stmt::ObjCIvarRefExprClass:
1744 case Stmt::ObjCForCollectionStmtClass:
1750 case Stmt::ObjCMessageExprClass:
1756 case Stmt::ObjCAtThrowStmtClass:
1757 case Stmt::CXXThrowExprClass:
1763 case Stmt::ReturnStmtClass:
1769 case Stmt::OffsetOfExprClass: {
1783 case Stmt::UnaryExprOrTypeTraitExprClass:
1790 case Stmt::StmtExprClass: {
1811 case Stmt::UnaryOperatorClass: {
1825 case Stmt::PseudoObjectExprClass: {
1851 const Stmt *CE = CalleeSF->getCallSite();
1917 const Stmt *Term = nodeBuilder.getContext().getBlock()->getTerminatorStmt();
1938 const Stmt *Term = nodeBuilder.getContext().getBlock()->getTerminatorStmt();
1991 const Stmt *Condition,
2028 static const Stmt *getRightmostLeaf(const Stmt *Condition) {
2028 static const Stmt *getRightmostLeaf(const Stmt *Condition) {
2054 static const Stmt *ResolveCondition(const Stmt *Condition,
2054 static const Stmt *ResolveCondition(const Stmt *Condition,
2080 const Stmt *LastStmt = CS->getStmt();
2087 void ExprEngine::processBranch(const Stmt *Condition,
2759 void ExprEngine::evalBind(ExplodedNodeSet &Dst, const Stmt *StoreE,
2878 const Stmt *NodeEx,
2879 const Stmt *BoundEx,
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp 603 const Stmt *S,
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp 72 static std::pair<const Stmt*,
74 const Stmt *S = nullptr;
164 const Stmt *LastSt = nullptr;
212 const Stmt *CE = calleeCtx->getCallSite();
215 const Stmt *LastSt = nullptr;
485 const Stmt *CallE) {
tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp 48 const ObjCForCollectionStmt *S, const Stmt *elem, SVal elementV,
114 const Stmt *elem = S->getElement();
115 const Stmt *collection = S->getCollection();
tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp 200 if (const Stmt *Body = DeclWithIssue->getBody()) {
tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp 30 const Stmt *LoopStmt;
33 LoopState(Kind InK, const Stmt *S, const LocationContext *L, unsigned N)
37 static LoopState getNormal(const Stmt *S, const LocationContext *L,
41 static LoopState getUnrolled(const Stmt *S, const LocationContext *L,
47 const Stmt *getLoopStmt() const { return LoopStmt; }
71 static bool isLoopStmt(const Stmt *S) {
75 ProgramStateRef processLoopEnd(const Stmt *LoopStmt, ProgramStateRef State) {
82 static internal::Matcher<Stmt> simpleCondition(StringRef BindName) {
93 static internal::Matcher<Stmt>
104 static internal::Matcher<Stmt>
111 static internal::Matcher<Stmt>
120 static internal::Matcher<Stmt>
127 static internal::Matcher<Stmt> hasSuspiciousStmt(StringRef NodeName) {
139 static internal::Matcher<Stmt> forLoopMatcher() {
170 const Stmt *S = N->getStmtForDiagnostics();
199 bool shouldCompletelyUnroll(const Stmt *LoopStmt, ASTContext &ASTCtx,
231 bool madeNewBranch(ExplodedNode *N, const Stmt *LoopStmt) {
232 const Stmt *S = nullptr;
251 ProgramStateRef updateLoopStack(const Stmt *LoopStmt, ASTContext &ASTCtx,
tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp 28 static const Expr *getLoopCondition(const Stmt *LoopStmt) {
32 case Stmt::ForStmtClass:
34 case Stmt::WhileStmtClass:
36 case Stmt::DoStmtClass:
46 unsigned BlockCount, const Stmt *LoopStmt) {
tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp 728 if (const Stmt *Body = DeclWithIssue->getBody()) {
tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp 302 ProgramStateRef ProgramState::BindExpr(const Stmt *S,
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp 172 DefinedOrUnknownSVal SValBuilder::conjureSymbolVal(const Stmt *stmt,
291 case Stmt::AddrLabelExprClass:
294 case Stmt::CXXScalarValueInitExprClass:
295 case Stmt::ImplicitValueInitExprClass:
298 case Stmt::ObjCStringLiteralClass: {
303 case Stmt::StringLiteralClass: {
310 case Stmt::CharacterLiteralClass: {
315 case Stmt::CXXBoolLiteralExprClass:
318 case Stmt::TypeTraitExprClass: {
323 case Stmt::IntegerLiteralClass:
326 case Stmt::ObjCBoolLiteralExprClass:
329 case Stmt::CXXNullPtrLiteralExprClass:
332 case Stmt::CStyleCastExprClass:
333 case Stmt::CXXFunctionalCastExprClass:
334 case Stmt::CXXConstCastExprClass:
335 case Stmt::CXXReinterpretCastExprClass:
336 case Stmt::CXXStaticCastExprClass:
337 case Stmt::ImplicitCastExprClass: {
tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp 183 const SymbolConjured* SymbolManager::conjureSymbol(const Stmt *E,
236 SymbolManager::getMetadataSymbol(const MemRegion* R, const Stmt *S, QualType T,
511 SymbolReaper::isLive(const Stmt *ExprVal, const LocationContext *ELCtx) const {
tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp 752 const Stmt *Body = D->getBody();
tools/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp 20 ParseModelFileAction::ParseModelFileAction(llvm::StringMap<Stmt *> &Bodies)
tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp 30 Stmt *ModelInjector::getBody(const FunctionDecl *D) {
35 Stmt *ModelInjector::getBody(const ObjCMethodDecl *D) {
tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h 41 Stmt *getBody(const FunctionDecl *D) override;
42 Stmt *getBody(const ObjCMethodDecl *D) override;
64 llvm::StringMap<Stmt *> Bodies;
tools/clang/lib/Tooling/ASTDiff/ASTDiff.cpp 116 Impl(SyntaxTree *Parent, Stmt *N, ASTContext &AST);
158 std::string getStmtValue(const Stmt *S) const;
166 static bool isSpecializedNodeExcluded(const Stmt *S) { return false; }
172 static bool isNodeExcluded(const SourceManager &SrcMgr, T *N) {
196 template <class T> std::tuple<NodeId, NodeId> PreTraverse(T *ASTNode) {
239 bool TraverseStmt(Stmt *S) {
273 SyntaxTree::Impl::Impl(SyntaxTree *Parent, Stmt *N, ASTContext &AST)
384 const Stmt *S) {
392 S = P.get<Stmt>();
414 if (auto *S = DTN.get<Stmt>())
446 std::string SyntaxTree::Impl::getStmtValue(const Stmt *S) const {
tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp 112 bool TraverseStmt(Stmt *S) {
223 } else if (const Stmt *S = Node.Node.get<Stmt>()) {
223 } else if (const Stmt *S = Node.Node.get<Stmt>()) {
265 getSelectionCanonizalizationAction(const Stmt *S, const Stmt *Parent) {
265 getSelectionCanonizalizationAction(const Stmt *S, const Stmt *Parent) {
291 const Stmt *S = Node.get().Node.get<Stmt>();
291 const Stmt *S = Node.get().Node.get<Stmt>();
293 const Stmt *Parent = Parents[Parents.size() - 1].get().Node.get<Stmt>();
293 const Stmt *Parent = Parents[Parents.size() - 1].get().Node.get<Stmt>();
301 const Stmt *NewParent =
302 Parents[Parents.size() - ParentIndex - 1].get().Node.get<Stmt>();
393 if (!Selected.Node.get().Node.get<Stmt>())
395 const Stmt *CodeRangeStmt = Selected.Node.get().Node.get<Stmt>();
395 const Stmt *CodeRangeStmt = Selected.Node.get().Node.get<Stmt>();
tools/clang/lib/Tooling/Refactoring/Extract/Extract.cpp 34 case Stmt::DeclRefExprClass:
35 case Stmt::PredefinedExprClass:
36 case Stmt::IntegerLiteralClass:
37 case Stmt::FloatingLiteralClass:
38 case Stmt::ImaginaryLiteralClass:
39 case Stmt::CharacterLiteralClass:
40 case Stmt::StringLiteralClass:
tools/clang/lib/Tooling/Refactoring/Extract/SourceExtraction.cpp 29 bool isSemicolonRequiredAfter(const Stmt *S) {
48 case Stmt::DeclStmtClass:
49 case Stmt::CXXTryStmtClass:
50 case Stmt::ObjCAtSynchronizedStmtClass:
51 case Stmt::ObjCAutoreleasePoolStmtClass:
52 case Stmt::ObjCAtTryStmtClass:
72 ExtractionSemicolonPolicy::compute(const Stmt *S, SourceRange &ExtractedRange,
tools/clang/lib/Tooling/RefactoringCallbacks.cpp 72 static Replacement replaceStmtWithText(SourceManager &Sources, const Stmt &From,
77 static Replacement replaceStmtWithStmt(SourceManager &Sources, const Stmt &From,
78 const Stmt &To) {
90 if (const Stmt *FromMatch = Result.Nodes.getNodeAs<Stmt>(FromId)) {
90 if (const Stmt *FromMatch = Result.Nodes.getNodeAs<Stmt>(FromId)) {
108 const Stmt *FromMatch = Result.Nodes.getNodeAs<Stmt>(FromId);
108 const Stmt *FromMatch = Result.Nodes.getNodeAs<Stmt>(FromId);
109 const Stmt *ToMatch = Result.Nodes.getNodeAs<Stmt>(ToId);
109 const Stmt *ToMatch = Result.Nodes.getNodeAs<Stmt>(ToId);
129 const Stmt *Body = PickTrueBranch ? Node->getThen() : Node->getElse();
tools/clang/lib/Tooling/Syntax/BuildTree.cpp 86 llvm::ArrayRef<syntax::Token> getRange(const Stmt *S) const {
tools/clang/lib/Tooling/Transformer/RangeSelector.cpp 134 return Node->get<Stmt>() != nullptr && Node->get<Expr>() == nullptr
tools/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp 64 if (const Stmt *Body = FD->getBody())
tools/clang/tools/extra/clang-tidy/abseil/StrCatAppendCheck.cpp 24 const Stmt *E = &Node;
tools/clang/tools/extra/clang-tidy/abseil/UpgradeDurationConversionsCheck.cpp 142 internal::Matcher<Stmt> IsInsideTemplate =
tools/clang/tools/extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp 104 SourceLocation Loc = Result.Nodes.getNodeAs<Stmt>("condStmt")->getBeginLoc();
tools/clang/tools/extra/clang-tidy/bugprone/BranchCloneCheck.cpp 20 static bool areStatementsIdentical(const Stmt *LHS, const Stmt *RHS,
20 static bool areStatementsIdentical(const Stmt *LHS, const Stmt *RHS,
31 using SwitchBranch = llvm::SmallVector<const Stmt *, 2>;
74 const Stmt *Then = IS->getThen();
77 const Stmt *Else = Result.Nodes.getNodeAs<Stmt>("else");
77 const Stmt *Else = Result.Nodes.getNodeAs<Stmt>("else");
92 llvm::SmallVector<const Stmt *, 4> Branches;
176 for (const Stmt *S : Body->body()) {
tools/clang/tools/extra/clang-tidy/bugprone/DanglingHandleCheck.cpp 24 ast_matchers::internal::BindableMatcher<Stmt>
35 ast_matchers::internal::Matcher<Stmt> handleFromTemporaryValue(
62 ast_matchers::internal::BindableMatcher<Stmt> makeContainerMatcher(
179 diag(Result.Nodes.getNodeAs<Stmt>("bad_stmt")->getBeginLoc(),
tools/clang/tools/extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp 20 static internal::Matcher<Stmt>
21 loopEndingStmt(internal::Matcher<Stmt> Internal) {
28 static bool isAccessForVar(const Stmt *S, const VarDecl *Var) {
36 static bool isPtrOrReferenceForVar(const Stmt *S, const VarDecl *Var) {
54 static bool hasPtrOrReferenceInStmt(const Stmt *S, const VarDecl *Var) {
58 for (const Stmt *Child : S->children()) {
76 static bool isChanged(const Stmt *LoopStmt, const VarDecl *Var,
93 const Stmt *LoopStmt, const Stmt *Cond,
93 const Stmt *LoopStmt, const Stmt *Cond,
120 const Stmt *LoopStmt, const Stmt *Cond,
120 const Stmt *LoopStmt, const Stmt *Cond,
125 for (const Stmt *Child : Cond->children()) {
136 static std::string getCondVarNames(const Stmt *Cond) {
143 for (const Stmt *Child : Cond->children()) {
170 const auto *LoopStmt = Result.Nodes.getNodeAs<Stmt>("loop-stmt");
170 const auto *LoopStmt = Result.Nodes.getNodeAs<Stmt>("loop-stmt");
tools/clang/tools/extra/clang-tidy/bugprone/MultipleStatementMacroCheck.cpp 24 const Stmt *nextStmt(const MatchFinder::MatchResult &Result, const Stmt *S) {
24 const Stmt *nextStmt(const MatchFinder::MatchResult &Result, const Stmt *S) {
28 const auto *Parent = Parents[0].get<Stmt>();
28 const auto *Parent = Parents[0].get<Stmt>();
31 const Stmt *Prev = nullptr;
32 for (const Stmt *Child : Parent->children()) {
70 const auto *Outer = Result.Nodes.getNodeAs<Stmt>("outer");
70 const auto *Outer = Result.Nodes.getNodeAs<Stmt>("outer");
71 const auto *Next = nextStmt(Result, Outer);
76 if (Result.Nodes.getNodeAs<Stmt>("else"))
tools/clang/tools/extra/clang-tidy/bugprone/SuspiciousSemicolonCheck.cpp 47 const auto *Statement = Result.Nodes.getNodeAs<Stmt>("stmt");
47 const auto *Statement = Result.Nodes.getNodeAs<Stmt>("stmt");
tools/clang/tools/extra/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp 174 if (Result.Nodes.getNodeAs<Stmt>("missing-comparison")) {
198 if (Result.Nodes.getNodeAs<Stmt>("invalid-comparison")) {
210 if (Result.Nodes.getNodeAs<Stmt>("invalid-conversion")) {
tools/clang/tools/extra/clang-tidy/bugprone/UndelegatedConstructorCheck.cpp 22 const Stmt *E = &Node;
tools/clang/tools/extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp 45 bool find(Stmt *FunctionBody, const Expr *MovingCall,
54 llvm::SmallPtrSetImpl<const Stmt *> *Reinits);
58 llvm::SmallPtrSetImpl<const Stmt *> *Stmts,
86 bool UseAfterMoveFinder::find(Stmt *FunctionBody, const Expr *MovingCall,
130 llvm::SmallPtrSet<const Stmt *, 1> Reinits;
135 llvm::SmallVector<const Stmt *, 1> ReinitsToDelete;
136 for (const Stmt *Reinit : Reinits) {
140 for (const Stmt *Reinit : ReinitsToDelete) {
151 for (const Stmt *Reinit : Reinits) {
187 llvm::SmallPtrSetImpl<const Stmt *> *Reinits) {
269 llvm::SmallPtrSetImpl<const Stmt *> *Stmts,
340 const auto *TheStmt = Match.getNodeAs<Stmt>("reinit");
340 const auto *TheStmt = Match.getNodeAs<Stmt>("reinit");
417 Stmt *FunctionBody = nullptr;
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp 48 const Stmt &Stmt, ASTContext &Context,
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeVarargCheck.cpp 19 const internal::VariadicDynCastAllOfMatcher<Stmt, VAArgExpr> vAArgExpr;
tools/clang/tools/extra/clang-tidy/google/UpgradeGoogletestCaseCheck.cpp 234 static bool isInTemplate(const NodeType &Node,
236 internal::Matcher<NodeType> IsInsideTemplate =
277 IsInTemplate = isInTemplate<Stmt>(*Call, Result);
282 IsInTemplate = isInTemplate<Stmt>(*Ref, Result);
tools/clang/tools/extra/clang-tidy/misc/RedundantExpressionCheck.cpp 87 case Stmt::CharacterLiteralClass:
90 case Stmt::IntegerLiteralClass: {
96 case Stmt::FloatingLiteralClass:
99 case Stmt::StringLiteralClass:
102 case Stmt::CXXOperatorCallExprClass:
105 case Stmt::DependentScopeDeclRefExprClass:
112 case Stmt::DeclRefExprClass:
115 case Stmt::MemberExprClass:
118 case Stmt::CXXFunctionalCastExprClass:
119 case Stmt::CStyleCastExprClass:
122 case Stmt::CallExprClass:
123 case Stmt::ImplicitCastExprClass:
124 case Stmt::ArraySubscriptExprClass:
126 case Stmt::UnaryOperatorClass:
131 case Stmt::BinaryOperatorClass:
tools/clang/tools/extra/clang-tidy/misc/StaticAssertCheck.cpp 83 const auto *CondStmt = Result.Nodes.getNodeAs<Stmt>("condStmt");
83 const auto *CondStmt = Result.Nodes.getNodeAs<Stmt>("condStmt");
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertUtils.cpp 39 bool StmtAncestorASTVisitor::TraverseStmt(Stmt *Statement) {
82 const Stmt *Curr = DeclParents->lookup(V);
380 case Stmt::ArraySubscriptExprClass: {
387 case Stmt::UnaryOperatorClass:
390 case Stmt::CXXOperatorCallExprClass: {
401 case Stmt::CXXMemberCallExprClass: {
465 bool ForLoopIndexUseVisitor::findAndVerifyUsages(const Stmt *Body) {
820 bool ForLoopIndexUseVisitor::TraverseStmt(Stmt *S) {
835 const Stmt *OldNextParent = NextStmtParent;
889 for (const Stmt *S = SourceStmt; S != nullptr; S = ReverseAST->lookup(S)) {
tools/clang/tools/extra/clang-tidy/modernize/LoopConvertUtils.h 32 typedef llvm::DenseMap<const clang::Stmt *, const clang::Stmt *> StmtParentMap;
32 typedef llvm::DenseMap<const clang::Stmt *, const clang::Stmt *> StmtParentMap;
45 typedef llvm::DenseMap<const clang::Stmt *, std::string>
77 llvm::SmallVector<const clang::Stmt *, 16> StmtStack;
79 bool TraverseStmt(clang::Stmt *Statement);
115 const clang::Stmt *ContainingStmt)
149 bool dependsOnInsideVariable(const clang::Stmt *Body) {
160 const clang::Stmt *ContainingStmt;
182 bool findUsages(const clang::Stmt *Body) {
302 bool findAndVerifyUsages(const Stmt *Body);
352 bool TraverseStmt(Stmt *S);
388 const Stmt *NextStmtParent;
392 const Stmt *CurrStmtParent;
433 const StmtParentMap *ReverseAST, const clang::Stmt *SourceStmt,
451 const clang::Stmt *SourceStmt;
tools/clang/tools/extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp 106 if (const Stmt *Body = Function->getBody()) {
tools/clang/tools/extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp 110 case Stmt::CXXNullPtrLiteralExprClass:
111 case Stmt::ImplicitValueInitExprClass:
113 case Stmt::InitListExprClass:
115 case Stmt::CharacterLiteralClass:
117 case Stmt::CXXBoolLiteralExprClass:
119 case Stmt::IntegerLiteralClass:
121 case Stmt::FloatingLiteralClass: {
155 case Stmt::UnaryOperatorClass:
158 case Stmt::CharacterLiteralClass:
161 case Stmt::CXXBoolLiteralExprClass:
164 case Stmt::IntegerLiteralClass:
167 case Stmt::FloatingLiteralClass:
170 case Stmt::StringLiteralClass:
173 case Stmt::DeclRefExprClass:
tools/clang/tools/extra/clang-tidy/modernize/UseNullptrCheck.cpp 101 bool TraverseStmt(Stmt *S) {
126 bool VisitStmt(Stmt *S) {
179 bool TraverseStmt(Stmt *S) {
190 bool VisitStmt(Stmt *S) {
280 ast_type_traits::DynTypedNode::create<Stmt>(*CE), MacroLoc,
292 else if (const auto *S = ContainingAncestor.get<Stmt>())
292 else if (const auto *S = ContainingAncestor.get<Stmt>())
437 else if (const auto *S = Parent.get<Stmt>())
437 else if (const auto *S = Parent.get<Stmt>())
tools/clang/tools/extra/clang-tidy/openmp/ExceptionEscapeCheck.cpp 65 const auto *StructuredBlock =
66 Result.Nodes.getNodeAs<Stmt>("structured-block");
tools/clang/tools/extra/clang-tidy/performance/ImplicitConversionInLoopCheck.cpp 27 static bool IsNonTrivialImplicitCast(const Stmt *ST) {
tools/clang/tools/extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp 200 const Stmt *LoopStmt = ForLoop;
tools/clang/tools/extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp 92 const auto *BlockStmt = Result.Nodes.getNodeAs<Stmt>("blockStmt");
92 const auto *BlockStmt = Result.Nodes.getNodeAs<Stmt>("blockStmt");
118 const VarDecl &Var, const Stmt &BlockStmt, bool IssueFix,
141 const VarDecl &NewVar, const VarDecl &OldVar, const Stmt &BlockStmt,
tools/clang/tools/extra/clang-tidy/performance/UnnecessaryCopyInitialization.h 34 void handleCopyFromMethodReturn(const VarDecl &Var, const Stmt &BlockStmt,
38 const Stmt &BlockStmt, bool IssueFix,
tools/clang/tools/extra/clang-tidy/readability/BracesAroundStatementsCheck.cpp 157 const Stmt *Else = S->getElse();
204 const MatchFinder::MatchResult &Result, const Stmt *S,
tools/clang/tools/extra/clang-tidy/readability/BracesAroundStatementsCheck.h 53 const Stmt *S, SourceLocation StartLoc,
60 std::set<const Stmt *> ForceBracesStmts;
tools/clang/tools/extra/clang-tidy/readability/ElseAfterReturnCheck.cpp 47 if (Result.Nodes.getNodeAs<Stmt>(BindingName))
tools/clang/tools/extra/clang-tidy/readability/FunctionSizeCheck.cpp 39 bool TraverseStmt(Stmt *Node) {
47 case Stmt::IfStmtClass:
48 case Stmt::WhileStmtClass:
49 case Stmt::DoStmtClass:
50 case Stmt::CXXForRangeStmtClass:
51 case Stmt::ForStmtClass:
52 case Stmt::SwitchStmtClass:
55 case Stmt::CompoundStmtClass:
167 if (const Stmt *Body = Func->getBody()) {
tools/clang/tools/extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp 30 bool isNULLMacroExpansion(const Stmt *Statement, ASTContext &Context) {
61 bool isUnaryLogicalNotOperator(const Stmt *Statement) {
83 bool areParensNeededForStatement(const Stmt *Statement) {
92 const ImplicitCastExpr *Cast, const Stmt *Parent,
105 Parent = Context.getParents(*Parent)[0].get<Stmt>();
222 std::queue<const Stmt *> Q;
226 const Stmt *S = N.get<Stmt>();
226 const Stmt *S = N.get<Stmt>();
336 const auto *Parent = Result.Nodes.getNodeAs<Stmt>("parentStmt");
336 const auto *Parent = Result.Nodes.getNodeAs<Stmt>("parentStmt");
349 const Stmt *Parent,
tools/clang/tools/extra/clang-tidy/readability/ImplicitBoolConversionCheck.h 32 const Stmt *ParentStatement, ASTContext &Context);
tools/clang/tools/extra/clang-tidy/readability/MisleadingIndentationCheck.cpp 60 const Stmt *CurrentStmt = CStmt->body_begin()[i];
61 const Stmt *Inner = nullptr;
92 const Stmt *NextStmt = CStmt->body_begin()[i + 1];
tools/clang/tools/extra/clang-tidy/readability/NonConstParameterCheck.cpp 57 } else if (const auto *S = Result.Nodes.getNodeAs<Stmt>("Mark")) {
57 } else if (const auto *S = Result.Nodes.getNodeAs<Stmt>("Mark")) {
tools/clang/tools/extra/clang-tidy/readability/RedundantControlFlowCheck.cpp 83 dyn_cast<Stmt>(*Previous)->getEndLoc(), tok::semi, SM, getLangOpts(),
tools/clang/tools/extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp 67 internal::Matcher<Stmt> returnsBool(bool Value, StringRef Id = "ignored") {
585 const Stmt *ElseStatement = IfStatement->getElse();
tools/clang/tools/extra/clang-tidy/readability/StringCompareCheck.cpp 52 if (const auto *Matched = Result.Nodes.getNodeAs<Stmt>("match1")) {
52 if (const auto *Matched = Result.Nodes.getNodeAs<Stmt>("match1")) {
57 if (const auto *Matched = Result.Nodes.getNodeAs<Stmt>("match2")) {
57 if (const auto *Matched = Result.Nodes.getNodeAs<Stmt>("match2")) {
60 if (const auto *Zero = Result.Nodes.getNodeAs<Stmt>("zero")) {
60 if (const auto *Zero = Result.Nodes.getNodeAs<Stmt>("zero")) {
62 const auto *Str2 = Result.Nodes.getNodeAs<Stmt>("str2");
62 const auto *Str2 = Result.Nodes.getNodeAs<Stmt>("str2");
63 const auto *Compare = Result.Nodes.getNodeAs<Stmt>("compare");
63 const auto *Compare = Result.Nodes.getNodeAs<Stmt>("compare");
tools/clang/tools/extra/clang-tidy/utils/ASTUtils.cpp 21 const Stmt &Statement) {
tools/clang/tools/extra/clang-tidy/utils/ASTUtils.h 19 const Stmt &Statement);
tools/clang/tools/extra/clang-tidy/utils/DeclRefExprUtils.cpp 107 bool isOnlyUsedAsConst(const VarDecl &Var, const Stmt &Stmt,
tools/clang/tools/extra/clang-tidy/utils/DeclRefExprUtils.h 27 bool isOnlyUsedAsConst(const VarDecl &Var, const Stmt &Stmt,
32 allDeclRefExprs(const VarDecl &VarDecl, const Stmt &Stmt, ASTContext &Context);
41 constReferenceDeclRefExprs(const VarDecl &VarDecl, const Stmt &Stmt,
tools/clang/tools/extra/clang-tidy/utils/ExceptionAnalyzer.cpp 118 if (const Stmt *Body = Func->getBody()) {
137 const Stmt *St, const ExceptionInfo::Throwables &Caught,
199 for (const Stmt *Child : St->children()) {
228 ExceptionAnalyzer::analyzeImpl(const Stmt *Stmt) {
235 ExceptionAnalyzer::analyzeDispatch(const T *Node) {
255 ExceptionAnalyzer::analyze(const Stmt *Stmt) {
tools/clang/tools/extra/clang-tidy/utils/ExceptionAnalyzer.h 132 ExceptionInfo analyze(const Stmt *Stmt);
139 throwsException(const Stmt *St, const ExceptionInfo::Throwables &Caught,
143 ExceptionInfo analyzeImpl(const Stmt *Stmt);
tools/clang/tools/extra/clang-tidy/utils/ExprSequence.cpp 27 static SmallVector<const Stmt *, 1> getParentStmts(const Stmt *S,
29 SmallVector<const Stmt *, 1> Result;
40 if (const auto *S = Node.get<Stmt>()) {
40 if (const auto *S = Node.get<Stmt>()) {
52 bool isDescendantOrEqual(const Stmt *Descendant, const Stmt *Ancestor,
52 bool isDescendantOrEqual(const Stmt *Descendant, const Stmt *Ancestor,
56 for (const Stmt *Parent : getParentStmts(Descendant, Context)) {
65 ExprSequence::ExprSequence(const CFG *TheCFG, const Stmt *Root,
73 bool ExprSequence::inSequence(const Stmt *Before, const Stmt *After) const {
73 bool ExprSequence::inSequence(const Stmt *Before, const Stmt *After) const {
79 for (const Stmt *Successor = getSequenceSuccessor(Before); Successor;
87 for (const Stmt *Parent : getParentStmts(Before, Context)) {
95 bool ExprSequence::potentiallyAfter(const Stmt *After,
96 const Stmt *Before) const {
100 const Stmt *ExprSequence::getSequenceSuccessor(const Stmt *S) const {
100 const Stmt *ExprSequence::getSequenceSuccessor(const Stmt *S) const {
101 for (const Stmt *Parent : getParentStmts(S, Context)) {
121 const Stmt *Previous = nullptr;
122 for (const auto *Child : Compound->body()) {
180 const Stmt *ExprSequence::resolveSyntheticStmt(const Stmt *S) const {
180 const Stmt *ExprSequence::resolveSyntheticStmt(const Stmt *S) const {
196 const CFGBlock *StmtToBlockMap::blockContainingStmt(const Stmt *S) const {
198 SmallVector<const Stmt *, 1> Parents = getParentStmts(S, Context);
tools/clang/tools/extra/clang-tidy/utils/ExprSequence.h 72 ExprSequence(const CFG *TheCFG, const Stmt *Root, ASTContext *TheContext);
75 bool inSequence(const Stmt *Before, const Stmt *After) const;
75 bool inSequence(const Stmt *Before, const Stmt *After) const;
80 bool potentiallyAfter(const Stmt *After, const Stmt *Before) const;
80 bool potentiallyAfter(const Stmt *After, const Stmt *Before) const;
91 const Stmt *getSequenceSuccessor(const Stmt *S) const;
91 const Stmt *getSequenceSuccessor(const Stmt *S) const;
93 const Stmt *resolveSyntheticStmt(const Stmt *S) const;
93 const Stmt *resolveSyntheticStmt(const Stmt *S) const;
96 const Stmt *Root;
98 llvm::DenseMap<const Stmt *, const Stmt *> SyntheticStmtSourceMap;
98 llvm::DenseMap<const Stmt *, const Stmt *> SyntheticStmtSourceMap;
112 const CFGBlock *blockContainingStmt(const Stmt *S) const;
117 llvm::DenseMap<const Stmt *, const CFGBlock *> Map;
tools/clang/tools/extra/clang-tidy/utils/NamespaceAliaser.cpp 30 NamespaceAliaser::createAlias(ASTContext &Context, const Stmt &Statement,
82 const Stmt &Statement,
tools/clang/tools/extra/clang-tidy/utils/NamespaceAliaser.h 32 createAlias(ASTContext &Context, const Stmt &Statement,
38 std::string getNamespaceName(ASTContext &Context, const Stmt &Statement,
tools/clang/tools/extra/clang-tidy/utils/UsingInserter.cpp 33 ASTContext &Context, const Stmt &Statement, StringRef QualifiedName) {
78 const Stmt &Statement,
tools/clang/tools/extra/clang-tidy/utils/UsingInserter.h 32 createUsingDeclaration(ASTContext &Context, const Stmt &Statement,
37 llvm::StringRef getShortName(ASTContext &Context, const Stmt &Statement,
tools/clang/tools/extra/clangd/FindTarget.cpp 169 void add(const Stmt *S, RelSet Flags) {
349 else if (const Stmt *S = N.get<Stmt>())
349 else if (const Stmt *S = N.get<Stmt>())
721 void findExplicitReferences(const Stmt *S,
tools/clang/tools/extra/clangd/FindTarget.h 106 void findExplicitReferences(const Stmt *S,
tools/clang/tools/extra/clangd/Selection.cpp 212 bool dataTraverseStmtPre(Stmt *X) {
226 bool dataTraverseStmtPost(Stmt *X) {
tools/clang/tools/extra/clangd/refactor/tweaks/DumpAST.cpp 53 return N.get<Decl>() || N.get<Stmt>() || N.get<Type>();
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractFunction.cpp 94 if (!N->ASTNode.get<Stmt>())
158 bool isRootStmt(const Stmt *S) const;
165 llvm::DenseSet<const Stmt *> RootStmts;
168 bool ExtractionZone::isRootStmt(const Stmt *S) const {
175 RootStmts.insert(Child->ASTNode.get<Stmt>());
239 if (Child->ASTNode.get<Stmt>() == EnclosingFunc->getBody())
416 bool isLoop(const Stmt *S) {
433 bool TraverseStmt(Stmt *S) {
454 void addToLoopSwitchCounters(Stmt *S, int Increment) {
465 void decrementLoopSwitchCounters(Stmt *S) {
576 ExtZone.getLastRootStmt()->ASTNode.get<Stmt>(), FuncBodyRange, SM,
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractVariable.cpp 57 const clang::Stmt *InsertionPoint = nullptr;
63 bool exprIsValidOutside(const clang::Stmt *Scope) const;
65 const clang::Stmt *computeInsertionPoint() const;
82 Visitor.TraverseStmt(const_cast<Stmt *>(dyn_cast<Stmt>(Expr)));
99 bool ExtractionContext::exprIsValidOutside(const clang::Stmt *Scope) const {
119 const clang::Stmt *ExtractionContext::computeInsertionPoint() const {
123 if (const clang::Stmt *Stmt = InsertionPoint->ASTNode.get<clang::Stmt>()) {
123 if (const clang::Stmt *Stmt = InsertionPoint->ASTNode.get<clang::Stmt>()) {
145 const clang::Stmt *CurInsertionPoint = CurNode->ASTNode.get<Stmt>();
145 const clang::Stmt *CurInsertionPoint = CurNode->ASTNode.get<Stmt>();
149 if (const clang::Stmt *CurParent = CurNode->Parent->ASTNode.get<Stmt>()) {
149 if (const clang::Stmt *CurParent = CurNode->Parent->ASTNode.get<Stmt>()) {
339 bool childExprIsStmt(const Stmt *Outer, const Expr *Inner) {
391 childExprIsStmt(OuterImplicit.Parent->ASTNode.get<Stmt>(),
tools/clang/tools/extra/clangd/refactor/tweaks/RawStringLiteral.cpp 84 Str = dyn_cast_or_null<StringLiteral>(N->ASTNode.get<Stmt>());
tools/clang/tools/extra/clangd/refactor/tweaks/SwapIfBranches.cpp 54 if (dyn_cast_or_null<CompoundStmt>(N->ASTNode.get<Stmt>()))
56 If = dyn_cast_or_null<IfStmt>(N->ASTNode.get<Stmt>());
tools/clang/tools/extra/modularize/Modularize.cpp 551 bool TraverseStmt(Stmt *S) { return true; }
742 bool TraverseStmt(Stmt *S) { return true; }
tools/clang/tools/libclang/CIndex.cpp 507 if (const Stmt *S = getCursorStmt(Cursor))
591 if (Stmt *Body = B->getBody())
1927 DeclarationNameInfoVisit(const Stmt *S, CXCursor parent)
1933 const Stmt *S = static_cast<const Stmt *>(data[0]);
1937 case clang::Stmt::MSDependentExistsStmtClass:
1939 case Stmt::CXXDependentScopeMemberExprClass:
1941 case Stmt::DependentScopeDeclRefExprClass:
1943 case Stmt::OMPCriticalDirectiveClass:
2003 void VisitStmt(const Stmt *S);
2082 void AddDeclarationNameInfo(const Stmt *S);
2087 void AddStmt(const Stmt *S);
2090 void EnqueueChildren(const Stmt *S);
2095 void EnqueueVisitor::AddDeclarationNameInfo(const Stmt *S) {
2107 void EnqueueVisitor::AddStmt(const Stmt *S) {
2127 void EnqueueVisitor::EnqueueChildren(const Stmt *S) {
2129 for (const Stmt *SubStmt : S->children()) {
2692 void EnqueueVisitor::VisitStmt(const Stmt *S) {
2989 void CursorVisitor::EnqueueWorkList(VisitorWorkList &WL, const Stmt *S) {
3068 const Stmt *S = cast<StmtVisit>(&LI)->get();
3207 bool CursorVisitor::Visit(const Stmt *S) {
3708 if (arg->getStmtClass() == Stmt::ImplicitCastExprClass) {
3712 if(subExpr->getStmtClass() != Stmt::StringLiteralClass){
3717 } else if (arg->getStmtClass() == Stmt::StringLiteralClass) {
3841 if (expr->getStmtClass() == Stmt::ImplicitCastExprClass) {
3844 if (subExpr->getStmtClass() == Stmt::StringLiteralClass ||
3845 subExpr->getStmtClass() == Stmt::ObjCStringLiteralClass) {
3865 } else if (expr->getStmtClass() == Stmt::ObjCStringLiteralClass ||
3866 expr->getStmtClass() == Stmt::StringLiteralClass) {
3886 if (expr->getStmtClass() == Stmt::CStyleCastExprClass) {
3891 CC->getSubExpr()->getStmtClass() == Stmt::CallExprClass) {
3907 } else if (expr->getStmtClass() == Stmt::CallExprClass) {
3931 } else if (expr->getStmtClass() == Stmt::DeclRefExprClass) {
3959 for (auto *bodyIterator : CS->body()) {
4332 static const Decl *getDeclFromExpr(const Stmt *E) {
4597 const Stmt *S = getCursorStmt(C);
4657 const Stmt *S = getCursorStmt(C);
6159 const Stmt *S = getCursorStmt(C);
tools/clang/tools/libclang/CXCursor.cpp 126 CXCursor cxcursor::MakeCXCursor(const Stmt *S, const Decl *Parent,
133 case Stmt::NoStmtClass:
136 case Stmt::CaseStmtClass:
140 case Stmt::DefaultStmtClass:
144 case Stmt::IfStmtClass:
148 case Stmt::SwitchStmtClass:
152 case Stmt::WhileStmtClass:
156 case Stmt::DoStmtClass:
160 case Stmt::ForStmtClass:
164 case Stmt::GotoStmtClass:
168 case Stmt::IndirectGotoStmtClass:
172 case Stmt::ContinueStmtClass:
176 case Stmt::BreakStmtClass:
180 case Stmt::ReturnStmtClass:
184 case Stmt::GCCAsmStmtClass:
188 case Stmt::MSAsmStmtClass:
192 case Stmt::ObjCAtTryStmtClass:
196 case Stmt::ObjCAtCatchStmtClass:
200 case Stmt::ObjCAtFinallyStmtClass:
204 case Stmt::ObjCAtThrowStmtClass:
208 case Stmt::ObjCAtSynchronizedStmtClass:
212 case Stmt::ObjCAutoreleasePoolStmtClass:
216 case Stmt::ObjCForCollectionStmtClass:
220 case Stmt::CXXCatchStmtClass:
224 case Stmt::CXXTryStmtClass:
228 case Stmt::CXXForRangeStmtClass:
232 case Stmt::SEHTryStmtClass:
236 case Stmt::SEHExceptStmtClass:
240 case Stmt::SEHFinallyStmtClass:
244 case Stmt::SEHLeaveStmtClass:
248 case Stmt::CoroutineBodyStmtClass:
249 case Stmt::CoreturnStmtClass:
253 case Stmt::ArrayTypeTraitExprClass:
254 case Stmt::AsTypeExprClass:
255 case Stmt::AtomicExprClass:
256 case Stmt::BinaryConditionalOperatorClass:
257 case Stmt::TypeTraitExprClass:
258 case Stmt::CoawaitExprClass:
259 case Stmt::ConceptSpecializationExprClass:
260 case Stmt::DependentCoawaitExprClass:
261 case Stmt::CoyieldExprClass:
262 case Stmt::CXXBindTemporaryExprClass:
263 case Stmt::CXXDefaultArgExprClass:
264 case Stmt::CXXDefaultInitExprClass:
265 case Stmt::CXXFoldExprClass:
266 case Stmt::CXXRewrittenBinaryOperatorClass:
267 case Stmt::CXXStdInitializerListExprClass:
268 case Stmt::CXXScalarValueInitExprClass:
269 case Stmt::CXXUuidofExprClass:
270 case Stmt::ChooseExprClass:
271 case Stmt::DesignatedInitExprClass:
272 case Stmt::DesignatedInitUpdateExprClass:
273 case Stmt::ArrayInitLoopExprClass:
274 case Stmt::ArrayInitIndexExprClass:
275 case Stmt::ExprWithCleanupsClass:
276 case Stmt::ExpressionTraitExprClass:
277 case Stmt::ExtVectorElementExprClass:
278 case Stmt::ImplicitCastExprClass:
279 case Stmt::ImplicitValueInitExprClass:
280 case Stmt::NoInitExprClass:
281 case Stmt::MaterializeTemporaryExprClass:
282 case Stmt::ObjCIndirectCopyRestoreExprClass:
283 case Stmt::OffsetOfExprClass:
284 case Stmt::ParenListExprClass:
285 case Stmt::PredefinedExprClass:
286 case Stmt::ShuffleVectorExprClass:
287 case Stmt::SourceLocExprClass:
288 case Stmt::ConvertVectorExprClass:
289 case Stmt::VAArgExprClass:
290 case Stmt::ObjCArrayLiteralClass:
291 case Stmt::ObjCDictionaryLiteralClass:
292 case Stmt::ObjCBoxedExprClass:
293 case Stmt::ObjCSubscriptRefExprClass:
297 case Stmt::OpaqueValueExprClass:
303 case Stmt::PseudoObjectExprClass:
307 case Stmt::CompoundStmtClass:
311 case Stmt::NullStmtClass:
315 case Stmt::LabelStmtClass:
319 case Stmt::AttributedStmtClass:
323 case Stmt::DeclStmtClass:
327 case Stmt::CapturedStmtClass:
331 case Stmt::IntegerLiteralClass:
335 case Stmt::FixedPointLiteralClass:
339 case Stmt::FloatingLiteralClass:
343 case Stmt::ImaginaryLiteralClass:
347 case Stmt::StringLiteralClass:
351 case Stmt::CharacterLiteralClass:
355 case Stmt::ConstantExprClass:
359 case Stmt::ParenExprClass:
363 case Stmt::UnaryOperatorClass:
367 case Stmt::UnaryExprOrTypeTraitExprClass:
368 case Stmt::CXXNoexceptExprClass:
372 case Stmt::MSPropertySubscriptExprClass:
373 case Stmt::ArraySubscriptExprClass:
377 case Stmt::OMPArraySectionExprClass:
381 case Stmt::BinaryOperatorClass:
385 case Stmt::CompoundAssignOperatorClass:
389 case Stmt::ConditionalOperatorClass:
393 case Stmt::CStyleCastExprClass:
397 case Stmt::CompoundLiteralExprClass:
401 case Stmt::InitListExprClass:
405 case Stmt::AddrLabelExprClass:
409 case Stmt::StmtExprClass:
413 case Stmt::GenericSelectionExprClass:
417 case Stmt::GNUNullExprClass:
421 case Stmt::CXXStaticCastExprClass:
425 case Stmt::CXXDynamicCastExprClass:
429 case Stmt::CXXReinterpretCastExprClass:
433 case Stmt::CXXConstCastExprClass:
437 case Stmt::CXXFunctionalCastExprClass:
441 case Stmt::CXXTypeidExprClass:
445 case Stmt::CXXBoolLiteralExprClass:
449 case Stmt::CXXNullPtrLiteralExprClass:
453 case Stmt::CXXThisExprClass:
457 case Stmt::CXXThrowExprClass:
461 case Stmt::CXXNewExprClass:
465 case Stmt::CXXDeleteExprClass:
469 case Stmt::ObjCStringLiteralClass:
473 case Stmt::ObjCEncodeExprClass:
477 case Stmt::ObjCSelectorExprClass:
481 case Stmt::ObjCProtocolExprClass:
485 case Stmt::ObjCBoolLiteralExprClass:
489 case Stmt::ObjCAvailabilityCheckExprClass:
493 case Stmt::ObjCBridgedCastExprClass:
497 case Stmt::BlockExprClass:
501 case Stmt::PackExpansionExprClass:
505 case Stmt::SizeOfPackExprClass:
509 case Stmt::DeclRefExprClass:
524 case Stmt::DependentScopeDeclRefExprClass:
525 case Stmt::SubstNonTypeTemplateParmExprClass:
526 case Stmt::SubstNonTypeTemplateParmPackExprClass:
527 case Stmt::FunctionParmPackExprClass:
528 case Stmt::UnresolvedLookupExprClass:
529 case Stmt::TypoExprClass: // A typo could actually be a DeclRef or a MemberRef
533 case Stmt::CXXDependentScopeMemberExprClass:
534 case Stmt::CXXPseudoDestructorExprClass:
535 case Stmt::MemberExprClass:
536 case Stmt::MSPropertyRefExprClass:
537 case Stmt::ObjCIsaExprClass:
538 case Stmt::ObjCIvarRefExprClass:
539 case Stmt::ObjCPropertyRefExprClass:
540 case Stmt::UnresolvedMemberExprClass:
544 case Stmt::CallExprClass:
545 case Stmt::CXXOperatorCallExprClass:
546 case Stmt::CXXMemberCallExprClass:
547 case Stmt::CUDAKernelCallExprClass:
548 case Stmt::CXXConstructExprClass:
549 case Stmt::CXXInheritedCtorInitExprClass:
550 case Stmt::CXXTemporaryObjectExprClass:
551 case Stmt::CXXUnresolvedConstructExprClass:
552 case Stmt::UserDefinedLiteralClass:
556 case Stmt::LambdaExprClass:
560 case Stmt::ObjCMessageExprClass: {
577 case Stmt::MSDependentExistsStmtClass:
580 case Stmt::OMPParallelDirectiveClass:
583 case Stmt::OMPSimdDirectiveClass:
586 case Stmt::OMPForDirectiveClass:
589 case Stmt::OMPForSimdDirectiveClass:
592 case Stmt::OMPSectionsDirectiveClass:
595 case Stmt::OMPSectionDirectiveClass:
598 case Stmt::OMPSingleDirectiveClass:
601 case Stmt::OMPMasterDirectiveClass:
604 case Stmt::OMPCriticalDirectiveClass:
607 case Stmt::OMPParallelForDirectiveClass:
610 case Stmt::OMPParallelForSimdDirectiveClass:
613 case Stmt::OMPParallelSectionsDirectiveClass:
616 case Stmt::OMPTaskDirectiveClass:
619 case Stmt::OMPTaskyieldDirectiveClass:
622 case Stmt::OMPBarrierDirectiveClass:
625 case Stmt::OMPTaskwaitDirectiveClass:
628 case Stmt::OMPTaskgroupDirectiveClass:
631 case Stmt::OMPFlushDirectiveClass:
634 case Stmt::OMPOrderedDirectiveClass:
637 case Stmt::OMPAtomicDirectiveClass:
640 case Stmt::OMPTargetDirectiveClass:
643 case Stmt::OMPTargetDataDirectiveClass:
646 case Stmt::OMPTargetEnterDataDirectiveClass:
649 case Stmt::OMPTargetExitDataDirectiveClass:
652 case Stmt::OMPTargetParallelDirectiveClass:
655 case Stmt::OMPTargetParallelForDirectiveClass:
658 case Stmt::OMPTargetUpdateDirectiveClass:
661 case Stmt::OMPTeamsDirectiveClass:
664 case Stmt::OMPCancellationPointDirectiveClass:
667 case Stmt::OMPCancelDirectiveClass:
670 case Stmt::OMPTaskLoopDirectiveClass:
673 case Stmt::OMPTaskLoopSimdDirectiveClass:
676 case Stmt::OMPMasterTaskLoopDirectiveClass:
679 case Stmt::OMPMasterTaskLoopSimdDirectiveClass:
682 case Stmt::OMPParallelMasterTaskLoopDirectiveClass:
685 case Stmt::OMPDistributeDirectiveClass:
688 case Stmt::OMPDistributeParallelForDirectiveClass:
691 case Stmt::OMPDistributeParallelForSimdDirectiveClass:
694 case Stmt::OMPDistributeSimdDirectiveClass:
697 case Stmt::OMPTargetParallelForSimdDirectiveClass:
700 case Stmt::OMPTargetSimdDirectiveClass:
703 case Stmt::OMPTeamsDistributeDirectiveClass:
706 case Stmt::OMPTeamsDistributeSimdDirectiveClass:
709 case Stmt::OMPTeamsDistributeParallelForSimdDirectiveClass:
712 case Stmt::OMPTeamsDistributeParallelForDirectiveClass:
715 case Stmt::OMPTargetTeamsDirectiveClass:
718 case Stmt::OMPTargetTeamsDistributeDirectiveClass:
721 case Stmt::OMPTargetTeamsDistributeParallelForDirectiveClass:
724 case Stmt::OMPTargetTeamsDistributeParallelForSimdDirectiveClass:
727 case Stmt::OMPTargetTeamsDistributeSimdDirectiveClass:
730 case Stmt::BuiltinBitCastExprClass:
1022 const Stmt *cxcursor::getCursorStmt(CXCursor Cursor) {
tools/clang/tools/libclang/CXCursor.h 55 CXCursor MakeCXCursor(const clang::Stmt *S, const clang::Decl *Parent,
242 const Stmt *getCursorStmt(CXCursor Cursor);
tools/clang/tools/libclang/CursorVisitor.h 266 void EnqueueWorkList(VisitorWorkList &WL, const Stmt *S);
267 LLVM_ATTRIBUTE_NOINLINE bool Visit(const Stmt *S);
tools/clang/unittests/AST/ASTContextParentMapTest.cpp 34 MatchVerifier<Stmt> Verifier;
74 MatchVerifier<Stmt> TemplateVerifier;
tools/clang/unittests/AST/ASTImporterTest.cpp 867 const internal::VariadicDynCastAllOfMatcher<Stmt, SizeOfPackExpr>
900 const internal::VariadicDynCastAllOfMatcher<Stmt, TypeTraitExpr> typeTraitExpr;
912 const internal::VariadicDynCastAllOfMatcher<Stmt, CXXTypeidExpr> cxxTypeidExpr;
tools/clang/unittests/AST/ASTPrint.h 26 const Stmt *S, PolicyAdjusterType PolicyAdjuster) {
44 const Stmt *S = Result.Nodes.getNodeAs<Stmt>("id");
44 const Stmt *S = Result.Nodes.getNodeAs<Stmt>("id");
tools/clang/unittests/AST/ASTTraverserTest.cpp 32 void Visit(const Stmt *S) { OS << S->getStmtClassName(); }
104 static void withDynNode(T *Node, const std::string &DumpString) {
157 Stmt *Body = Func->getBody();
tools/clang/unittests/AST/ASTTypeTraitsTest.cpp 25 return ASTNodeKind::getFromNodeKind<T>();
tools/clang/unittests/AST/DataCollectionTest.cpp 37 StmtDataCollector(const Stmt *S, ASTContext &Context, llvm::MD5 &DataConsumer)
59 const Stmt *S = Result.Nodes.getNodeAs<Stmt>("id");
59 const Stmt *S = Result.Nodes.getNodeAs<Stmt>("id");
tools/clang/unittests/AST/MatchVerifier.h 62 const NodeType &Node) {}
150 const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
150 const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp 1546 bool verify(const BoundNodes &Nodes, ASTContext &Context, const Stmt *Node) {
tools/clang/unittests/ASTMatchers/ASTMatchersTest.h 421 if (Nodes->getNodeAs<T>(Id)) {
tools/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp 2290 const Stmt *Node = Nodes->getNodeAs<Stmt>("node");
2290 const Stmt *Node = Nodes->getNodeAs<Stmt>("node");
2465 VerifyMatchOnNode(StringRef Id, const internal::Matcher<T> &InnerMatcher,
2473 const T *Node = Nodes->getNodeAs<T>(Id);
2473 const T *Node = Nodes->getNodeAs<T>(Id);
2474 return selectFirst<T>(InnerId, match(InnerMatcher, *Node, *Context)) !=
2479 internal::Matcher<T> InnerMatcher;
tools/clang/unittests/ASTMatchers/Dynamic/ParserTest.cpp 30 ast_matchers::internal::Matcher<Stmt> M = stmt(stmt(), stmt());
72 typedef std::map<std::string, ast_matchers::internal::Matcher<Stmt> >
259 auto M = OM->unconditionalConvertTo<Stmt>();
tools/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp 128 Matcher<Stmt> IsArrowValue = constructMatcher(
129 "memberExpr", constructMatcher("isArrow")).getTypedMatcher<Stmt>();
130 Matcher<Stmt> BoolValue =
131 constructMatcher("cxxBoolLiteral").getTypedMatcher<Stmt>();
187 Matcher<Stmt> CallExpr0 = constructMatcher(
191 .getTypedMatcher<Stmt>();
193 Matcher<Stmt> CallExpr1 = constructMatcher(
199 .getTypedMatcher<Stmt>();
256 Matcher<Stmt> ConstructExpr = constructMatcher(
264 .getTypedMatcher<Stmt>();
325 Matcher<Stmt> S = constructMatcher(
331 .getTypedMatcher<Stmt>();
339 .getTypedMatcher<Stmt>();
509 Matcher<Stmt> Value = constructMatcher("parenExpr").getTypedMatcher<Stmt>();
509 Matcher<Stmt> Value = constructMatcher("parenExpr").getTypedMatcher<Stmt>();
515 Matcher<Stmt> BooleanStmt = constructMatcher(
517 .getTypedMatcher<Stmt>();
524 .getTypedMatcher<Stmt>();
529 Matcher<Stmt> DoubleStmt = constructMatcher(
531 .getTypedMatcher<Stmt>();
541 Matcher<Stmt> IntegerStmt = constructMatcher(
543 .getTypedMatcher<Stmt>();
547 Matcher<Stmt> CharStmt = constructMatcher(
549 .getTypedMatcher<Stmt>();
tools/clang/unittests/Analysis/CFGBuildResult.h 42 Stmt *Body = Func->getBody();
tools/clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp 30 using StmtMatcher = internal::Matcher<Stmt>;
55 const auto *const S = selectFirst<Stmt>("stmt", Results);
55 const auto *const S = selectFirst<Stmt>("stmt", Results);
62 const auto *const S = selectFirst<Stmt>("stmt", Results);
62 const auto *const S = selectFirst<Stmt>("stmt", Results);
66 const Stmt *By = Analyzer.findMutation(E);
tools/clang/unittests/StaticAnalyzer/RegisterCustomCheckersTest.cpp 89 void checkLocation(SVal Loc, bool IsLoad, const Stmt *S,
tools/clang/unittests/Tooling/ASTSelectionTest.cpp 107 typename std::enable_if<std::is_base_of<Stmt, T>::value, T>::type
109 checkNodeImpl(isa<T>(StmtNode.Node.get<Stmt>()), StmtNode, SelectionKind,
tools/clang/unittests/Tooling/LexicallyOrderedRecursiveASTVisitorTest.cpp 35 bool TraverseStmt(Stmt *S);
62 template <class T> void match(StringRef Path, const T *D) {
67 bool LexicallyOrderedDeclVisitor::TraverseStmt(Stmt *S) {
tools/clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp 26 bool VisitStmt(Stmt *S) {
44 std::stack<Stmt *> PendingBodies;
tools/clang/unittests/Tooling/StencilTest.cpp 345 return std::string(R.Nodes.getNodeAs<Stmt>(Id) != nullptr ? "Bound"
tools/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h 61 clang::Stmt *GetExternalDeclStmt(uint64_t Offset) override {
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp 136 Stmt *function_body = function_decl->getBody();
176 Stmt *method_body = MethodDecl->getBody();
211 Stmt **last_stmt_ptr = Body->body_end() - 1;
212 Stmt *last_stmt = *last_stmt_ptr;
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp 54 Stmt *body_stmt = F->getBody();
67 Stmt *curr_stmt = *bi;
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h 43 clang::Stmt *GetExternalDeclStmt(uint64_t Offset) override {
296 clang::Stmt *GetExternalDeclStmt(uint64_t Offset) override {
298 if (clang::Stmt *Result = Sources[i]->GetExternalDeclStmt(Offset))
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h 49 clang::Stmt *GetExternalDeclStmt(uint64_t) override { return nullptr; }
tools/lldb/tools/lldb-instr/Instrument.cpp 175 Stmt *Body = Decl->getBody();
280 Stmt *Body = Decl->getBody();
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
381 : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
1554 { typedef _Tp type; };
1558 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1580 { typedef _Tp const type; };
1629 { typedef _Tp type; };
1983 { typedef _Up type; };
1999 { typedef typename remove_reference<_Tp>::type* type; };
2003 : public __add_pointer_helper<_Tp>