clang 23.0.0git
SemaExpand.cpp File Reference
#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 DeclRefExprBuildIndexDRE (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)

Function Documentation

◆ BuildDestructuringDecompositionDecl()

◆ BuildIndexDRE()

◆ FinalizeExpansionVar()

◆ HasDependentSize()

◆ InitListContainsPack()

auto InitListContainsPack ( const InitListExpr * ILE)
static

◆ TryBuildIterableExpansionStmtInitializer()

IterableExpansionStmtData TryBuildIterableExpansionStmtInitializer ( Sema & S,
Expr * ExpansionInitializer,
Expr * Index,
SourceLocation ColonLoc,
bool VarIsConstexpr,
ArrayRef< MaterializeTemporaryExpr * > LifetimeExtendTemps )
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().