|
clang 23.0.0git
|
#include "clang/AST/DeclCXX.h"#include "clang/AST/ExprCXX.h"#include "clang/AST/StmtCXX.h"#include "clang/Lex/Preprocessor.h"#include "clang/Sema/EnterExpressionEvaluationContext.h"#include "clang/Sema/Lookup.h"#include "clang/Sema/Overload.h"#include "clang/Sema/Sema.h"#include "clang/Sema/Template.h"#include "llvm/ADT/ScopeExit.h"Go to the source code of this file.
Functions | |
| static DeclRefExpr * | BuildIndexDRE (Sema &S, CXXExpansionStmtDecl *ESD) |
| static bool | FinalizeExpansionVar (Sema &S, VarDecl *ExpansionVar, ExprResult Initializer) |
| static auto | InitListContainsPack (const InitListExpr *ILE) |
| static bool | HasDependentSize (const DeclContext *CurContext, const CXXExpansionStmtPattern *Pattern) |
| static IterableExpansionStmtData | TryBuildIterableExpansionStmtInitializer (Sema &S, Expr *ExpansionInitializer, Expr *Index, SourceLocation ColonLoc, bool VarIsConstexpr, ArrayRef< MaterializeTemporaryExpr * > LifetimeExtendTemps) |
| static StmtResult | BuildDestructuringDecompositionDecl (Sema &S, Expr *ExpansionInitializer, SourceLocation ColonLoc, bool VarIsConstexpr, ArrayRef< MaterializeTemporaryExpr * > LifetimeExtendTemps) |
|
static |
Definition at line 239 of file SemaExpand.cpp.
References clang::Sema::ActOnDeclStmt(), clang::Sema::AddInitializerToDecl(), clang::Sema::ApplyForRangeOrExpansionStatementLifetimeExtension(), clang::Sema::Context, clang::Sema::ConvertDeclToDeclGroup(), clang::BindingDecl::Create(), clang::DecompositionDecl::Create(), clang::Sema::CurContext, clang::ASTContext::getAutoRRefDeductType(), clang::Sema::GetDecompositionElementCount(), clang::Preprocessor::getIdentifierInfo(), clang::DeclContext::getParent(), clang::Sema::getPreprocessor(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::Expr::getType(), clang::Sema::ImmediateFunctionContext, clang::Sema::PotentiallyEvaluated, clang::SC_Auto, and clang::StmtError().
Referenced by clang::Sema::BuildNonEnumeratingCXXExpansionStmtPattern().
|
static |
Definition at line 57 of file SemaExpand.cpp.
References clang::Sema::BuildDeclRefExpr(), clang::Sema::Context, clang::Decl::getBeginLoc(), clang::CXXExpansionStmtDecl::getIndexTemplateParm(), clang::ASTContext::getPointerDiffType(), and clang::VK_PRValue.
Referenced by clang::Sema::ActOnCXXExpansionStmtPattern(), and clang::Sema::BuildNonEnumeratingCXXExpansionStmtPattern().
|
static |
Definition at line 63 of file SemaExpand.cpp.
References clang::Sema::ActOnInitializerError(), clang::Sema::AddInitializerToDecl(), clang::Initializer, and clang::Decl::isInvalidDecl().
Referenced by clang::Sema::ActOnCXXExpansionStmtPattern(), and clang::Sema::BuildNonEnumeratingCXXExpansionStmtPattern().
|
static |
Definition at line 79 of file SemaExpand.cpp.
References clang::cast(), clang::CXXExpansionStmtPattern::Dependent, clang::CXXExpansionStmtPattern::Destructuring, clang::CXXExpansionStmtPattern::Enumerating, clang::CXXExpansionStmtPattern::getExpansionVariable(), clang::VarDecl::getInit(), clang::CXXExpansionStmtPattern::getKind(), clang::DeclContext::getParent(), InitListContainsPack(), clang::DeclContext::isDependentContext(), clang::DeclContext::isExpansionStmt(), and clang::CXXExpansionStmtPattern::Iterating.
Referenced by clang::Sema::FinishCXXExpansionStmt().
|
static |
Definition at line 74 of file SemaExpand.cpp.
References clang::InitListExpr::inits().
Referenced by clang::Sema::BuildCXXExpansionSelectExpr(), and HasDependentSize().
|
static |
Definition at line 105 of file SemaExpand.cpp.
References clang::Sema::ActOnDeclStmt(), clang::Sema::ActOnParenExpr(), clang::Sema::AddArgumentDependentLookupCandidates(), clang::Sema::AddInitializerToDecl(), clang::Sema::ApplyForRangeOrExpansionStatementLifetimeExtension(), clang::Sema::ForRangeBeginEndInfo::BeginVar, clang::OverloadCandidateSet::BestViableFunction(), clang::Sema::BFRK_Build, clang::Sema::BuildCXXForRangeBeginEndVars(), clang::Sema::BuildCXXForRangeRangeVar(), clang::Sema::BuildForRangeVarDecl(), clang::cast(), clang::Sema::Context, clang::Sema::ConvertDeclToDeclGroup(), clang::OverloadCandidateSet::CSK_Normal, clang::Sema::CurContext, clang::Data, clang::DecltypeAuto, clang::SemaBase::Diag(), clang::ActionResult< PtrTy, Compress >::get(), clang::IdentifierTable::get(), clang::Type::getAsCXXRecordDecl(), clang::ASTContext::getAutoDeductType(), clang::ASTContext::getAutoType(), clang::Sema::getCurScope(), clang::Scope::getDepth(), clang::Preprocessor::getIdentifierInfo(), clang::Preprocessor::getIdentifierTable(), clang::DeclarationNameInfo::getName(), clang::QualType::getNonReferenceType(), clang::DeclContext::getParent(), clang::Expr::getType(), clang::Sema::ImmediateFunctionContext, clang::Type::isArrayType(), clang::Decl::isInvalidDecl(), clang::Sema::ForRangeBeginEndInfo::isValid(), clang::Sema::LookupMemberName, clang::Sema::LookupQualifiedName(), clang::OR_No_Viable_Function, clang::Sema::PotentiallyEvaluated, clang::Sema::PP, and clang::Undeduced.
Referenced by clang::Sema::BuildNonEnumeratingCXXExpansionStmtPattern().