//===- StmtIterator.cpp - Iterators for Statements ------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines internal methods for StmtIterator. // //===----------------------------------------------------------------------===// #include "clang/AST/StmtIterator.h" #include "clang/AST/Decl.h" #include "clang/AST/Type.h" #include "clang/Basic/LLVM.h" #include "llvm/Support/Casting.h" #include <cassert> #include <cstdint> usingnamespaceclang; // FIXME: Add support for dependent-sized array types in C++? // Does it even make sense to build a CFG for an uninstantiated template? static inline const VariableArrayType *FindVA(const Type* t) { … } void StmtIteratorBase::NextVA() { … } void StmtIteratorBase::NextDecl(bool ImmediateAdvance) { … } bool StmtIteratorBase::HandleDecl(Decl* D) { … } StmtIteratorBase::StmtIteratorBase(Decl** dgi, Decl** dge) : … { … } StmtIteratorBase::StmtIteratorBase(const VariableArrayType* t) : … { … } Stmt*& StmtIteratorBase::GetDeclExpr() const { … }