#include "clang/AST/ExprCXX.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/ComputeDependence.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclAccessPair.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/LambdaCapture.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/Type.h"
#include "clang/AST/TypeLoc.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstddef>
#include <cstring>
#include <memory>
#include <optional>
usingnamespaceclang;
bool CXXOperatorCallExpr::isInfixBinaryOp() const { … }
CXXRewrittenBinaryOperator::DecomposedForm
CXXRewrittenBinaryOperator::getDecomposedForm() const { … }
bool CXXTypeidExpr::isPotentiallyEvaluated() const { … }
bool CXXTypeidExpr::isMostDerived(ASTContext &Context) const { … }
QualType CXXTypeidExpr::getTypeOperand(ASTContext &Context) const { … }
static bool isGLValueFromPointerDeref(const Expr *E) { … }
bool CXXTypeidExpr::hasNullCheck() const { … }
QualType CXXUuidofExpr::getTypeOperand(ASTContext &Context) const { … }
SourceLocation CXXScalarValueInitExpr::getBeginLoc() const { … }
CXXNewExpr::CXXNewExpr(bool IsGlobalNew, FunctionDecl *OperatorNew,
FunctionDecl *OperatorDelete, bool ShouldPassAlignment,
bool UsualArrayDeleteWantsSize,
ArrayRef<Expr *> PlacementArgs, SourceRange TypeIdParens,
std::optional<Expr *> ArraySize,
CXXNewInitializationStyle InitializationStyle,
Expr *Initializer, QualType Ty,
TypeSourceInfo *AllocatedTypeInfo, SourceRange Range,
SourceRange DirectInitRange)
: … { … }
CXXNewExpr::CXXNewExpr(EmptyShell Empty, bool IsArray,
unsigned NumPlacementArgs, bool IsParenTypeId)
: … { … }
CXXNewExpr *CXXNewExpr::Create(
const ASTContext &Ctx, bool IsGlobalNew, FunctionDecl *OperatorNew,
FunctionDecl *OperatorDelete, bool ShouldPassAlignment,
bool UsualArrayDeleteWantsSize, ArrayRef<Expr *> PlacementArgs,
SourceRange TypeIdParens, std::optional<Expr *> ArraySize,
CXXNewInitializationStyle InitializationStyle, Expr *Initializer,
QualType Ty, TypeSourceInfo *AllocatedTypeInfo, SourceRange Range,
SourceRange DirectInitRange) { … }
CXXNewExpr *CXXNewExpr::CreateEmpty(const ASTContext &Ctx, bool IsArray,
bool HasInit, unsigned NumPlacementArgs,
bool IsParenTypeId) { … }
bool CXXNewExpr::shouldNullCheckAllocation() const { … }
QualType CXXDeleteExpr::getDestroyedType() const { … }
PseudoDestructorTypeStorage::PseudoDestructorTypeStorage(TypeSourceInfo *Info)
: … { … }
CXXPseudoDestructorExpr::CXXPseudoDestructorExpr(
const ASTContext &Context, Expr *Base, bool isArrow,
SourceLocation OperatorLoc, NestedNameSpecifierLoc QualifierLoc,
TypeSourceInfo *ScopeType, SourceLocation ColonColonLoc,
SourceLocation TildeLoc, PseudoDestructorTypeStorage DestroyedType)
: … { … }
QualType CXXPseudoDestructorExpr::getDestroyedType() const { … }
SourceLocation CXXPseudoDestructorExpr::getEndLoc() const { … }
UnresolvedLookupExpr::UnresolvedLookupExpr(
const ASTContext &Context, CXXRecordDecl *NamingClass,
NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc,
const DeclarationNameInfo &NameInfo, bool RequiresADL,
const TemplateArgumentListInfo *TemplateArgs, UnresolvedSetIterator Begin,
UnresolvedSetIterator End, bool KnownDependent,
bool KnownInstantiationDependent)
: … { … }
UnresolvedLookupExpr::UnresolvedLookupExpr(EmptyShell Empty,
unsigned NumResults,
bool HasTemplateKWAndArgsInfo)
: … { … }
UnresolvedLookupExpr *UnresolvedLookupExpr::Create(
const ASTContext &Context, CXXRecordDecl *NamingClass,
NestedNameSpecifierLoc QualifierLoc, const DeclarationNameInfo &NameInfo,
bool RequiresADL, UnresolvedSetIterator Begin, UnresolvedSetIterator End,
bool KnownDependent, bool KnownInstantiationDependent) { … }
UnresolvedLookupExpr *UnresolvedLookupExpr::Create(
const ASTContext &Context, CXXRecordDecl *NamingClass,
NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc,
const DeclarationNameInfo &NameInfo, bool RequiresADL,
const TemplateArgumentListInfo *Args, UnresolvedSetIterator Begin,
UnresolvedSetIterator End, bool KnownDependent,
bool KnownInstantiationDependent) { … }
UnresolvedLookupExpr *UnresolvedLookupExpr::CreateEmpty(
const ASTContext &Context, unsigned NumResults,
bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs) { … }
OverloadExpr::OverloadExpr(StmtClass SC, const ASTContext &Context,
NestedNameSpecifierLoc QualifierLoc,
SourceLocation TemplateKWLoc,
const DeclarationNameInfo &NameInfo,
const TemplateArgumentListInfo *TemplateArgs,
UnresolvedSetIterator Begin,
UnresolvedSetIterator End, bool KnownDependent,
bool KnownInstantiationDependent,
bool KnownContainsUnexpandedParameterPack)
: … { … }
OverloadExpr::OverloadExpr(StmtClass SC, EmptyShell Empty, unsigned NumResults,
bool HasTemplateKWAndArgsInfo)
: … { … }
DependentScopeDeclRefExpr::DependentScopeDeclRefExpr(
QualType Ty, NestedNameSpecifierLoc QualifierLoc,
SourceLocation TemplateKWLoc, const DeclarationNameInfo &NameInfo,
const TemplateArgumentListInfo *Args)
: … { … }
DependentScopeDeclRefExpr *DependentScopeDeclRefExpr::Create(
const ASTContext &Context, NestedNameSpecifierLoc QualifierLoc,
SourceLocation TemplateKWLoc, const DeclarationNameInfo &NameInfo,
const TemplateArgumentListInfo *Args) { … }
DependentScopeDeclRefExpr *
DependentScopeDeclRefExpr::CreateEmpty(const ASTContext &Context,
bool HasTemplateKWAndArgsInfo,
unsigned NumTemplateArgs) { … }
SourceLocation CXXConstructExpr::getBeginLoc() const { … }
SourceLocation CXXConstructExpr::getEndLoc() const { … }
CXXOperatorCallExpr::CXXOperatorCallExpr(OverloadedOperatorKind OpKind,
Expr *Fn, ArrayRef<Expr *> Args,
QualType Ty, ExprValueKind VK,
SourceLocation OperatorLoc,
FPOptionsOverride FPFeatures,
ADLCallKind UsesADL)
: … { … }
CXXOperatorCallExpr::CXXOperatorCallExpr(unsigned NumArgs, bool HasFPFeatures,
EmptyShell Empty)
: … { … }
CXXOperatorCallExpr *
CXXOperatorCallExpr::Create(const ASTContext &Ctx,
OverloadedOperatorKind OpKind, Expr *Fn,
ArrayRef<Expr *> Args, QualType Ty,
ExprValueKind VK, SourceLocation OperatorLoc,
FPOptionsOverride FPFeatures, ADLCallKind UsesADL) { … }
CXXOperatorCallExpr *CXXOperatorCallExpr::CreateEmpty(const ASTContext &Ctx,
unsigned NumArgs,
bool HasFPFeatures,
EmptyShell Empty) { … }
SourceRange CXXOperatorCallExpr::getSourceRangeImpl() const { … }
CXXMemberCallExpr::CXXMemberCallExpr(Expr *Fn, ArrayRef<Expr *> Args,
QualType Ty, ExprValueKind VK,
SourceLocation RP,
FPOptionsOverride FPOptions,
unsigned MinNumArgs)
: … { … }
CXXMemberCallExpr::CXXMemberCallExpr(unsigned NumArgs, bool HasFPFeatures,
EmptyShell Empty)
: … { … }
CXXMemberCallExpr *CXXMemberCallExpr::Create(const ASTContext &Ctx, Expr *Fn,
ArrayRef<Expr *> Args, QualType Ty,
ExprValueKind VK,
SourceLocation RP,
FPOptionsOverride FPFeatures,
unsigned MinNumArgs) { … }
CXXMemberCallExpr *CXXMemberCallExpr::CreateEmpty(const ASTContext &Ctx,
unsigned NumArgs,
bool HasFPFeatures,
EmptyShell Empty) { … }
Expr *CXXMemberCallExpr::getImplicitObjectArgument() const { … }
QualType CXXMemberCallExpr::getObjectType() const { … }
CXXMethodDecl *CXXMemberCallExpr::getMethodDecl() const { … }
CXXRecordDecl *CXXMemberCallExpr::getRecordDecl() const { … }
const char *CXXNamedCastExpr::getCastName() const { … }
CXXStaticCastExpr *
CXXStaticCastExpr::Create(const ASTContext &C, QualType T, ExprValueKind VK,
CastKind K, Expr *Op, const CXXCastPath *BasePath,
TypeSourceInfo *WrittenTy, FPOptionsOverride FPO,
SourceLocation L, SourceLocation RParenLoc,
SourceRange AngleBrackets) { … }
CXXStaticCastExpr *CXXStaticCastExpr::CreateEmpty(const ASTContext &C,
unsigned PathSize,
bool HasFPFeatures) { … }
CXXDynamicCastExpr *CXXDynamicCastExpr::Create(const ASTContext &C, QualType T,
ExprValueKind VK,
CastKind K, Expr *Op,
const CXXCastPath *BasePath,
TypeSourceInfo *WrittenTy,
SourceLocation L,
SourceLocation RParenLoc,
SourceRange AngleBrackets) { … }
CXXDynamicCastExpr *CXXDynamicCastExpr::CreateEmpty(const ASTContext &C,
unsigned PathSize) { … }
bool CXXDynamicCastExpr::isAlwaysNull() const { … }
CXXReinterpretCastExpr *
CXXReinterpretCastExpr::Create(const ASTContext &C, QualType T,
ExprValueKind VK, CastKind K, Expr *Op,
const CXXCastPath *BasePath,
TypeSourceInfo *WrittenTy, SourceLocation L,
SourceLocation RParenLoc,
SourceRange AngleBrackets) { … }
CXXReinterpretCastExpr *
CXXReinterpretCastExpr::CreateEmpty(const ASTContext &C, unsigned PathSize) { … }
CXXConstCastExpr *CXXConstCastExpr::Create(const ASTContext &C, QualType T,
ExprValueKind VK, Expr *Op,
TypeSourceInfo *WrittenTy,
SourceLocation L,
SourceLocation RParenLoc,
SourceRange AngleBrackets) { … }
CXXConstCastExpr *CXXConstCastExpr::CreateEmpty(const ASTContext &C) { … }
CXXAddrspaceCastExpr *
CXXAddrspaceCastExpr::Create(const ASTContext &C, QualType T, ExprValueKind VK,
CastKind K, Expr *Op, TypeSourceInfo *WrittenTy,
SourceLocation L, SourceLocation RParenLoc,
SourceRange AngleBrackets) { … }
CXXAddrspaceCastExpr *CXXAddrspaceCastExpr::CreateEmpty(const ASTContext &C) { … }
CXXFunctionalCastExpr *CXXFunctionalCastExpr::Create(
const ASTContext &C, QualType T, ExprValueKind VK, TypeSourceInfo *Written,
CastKind K, Expr *Op, const CXXCastPath *BasePath, FPOptionsOverride FPO,
SourceLocation L, SourceLocation R) { … }
CXXFunctionalCastExpr *CXXFunctionalCastExpr::CreateEmpty(const ASTContext &C,
unsigned PathSize,
bool HasFPFeatures) { … }
SourceLocation CXXFunctionalCastExpr::getBeginLoc() const { … }
SourceLocation CXXFunctionalCastExpr::getEndLoc() const { … }
UserDefinedLiteral::UserDefinedLiteral(Expr *Fn, ArrayRef<Expr *> Args,
QualType Ty, ExprValueKind VK,
SourceLocation LitEndLoc,
SourceLocation SuffixLoc,
FPOptionsOverride FPFeatures)
: … { … }
UserDefinedLiteral::UserDefinedLiteral(unsigned NumArgs, bool HasFPFeatures,
EmptyShell Empty)
: … { … }
UserDefinedLiteral *UserDefinedLiteral::Create(const ASTContext &Ctx, Expr *Fn,
ArrayRef<Expr *> Args,
QualType Ty, ExprValueKind VK,
SourceLocation LitEndLoc,
SourceLocation SuffixLoc,
FPOptionsOverride FPFeatures) { … }
UserDefinedLiteral *UserDefinedLiteral::CreateEmpty(const ASTContext &Ctx,
unsigned NumArgs,
bool HasFPOptions,
EmptyShell Empty) { … }
UserDefinedLiteral::LiteralOperatorKind
UserDefinedLiteral::getLiteralOperatorKind() const { … }
Expr *UserDefinedLiteral::getCookedLiteral() { … }
const IdentifierInfo *UserDefinedLiteral::getUDSuffix() const { … }
CXXDefaultArgExpr *CXXDefaultArgExpr::CreateEmpty(const ASTContext &C,
bool HasRewrittenInit) { … }
CXXDefaultArgExpr *CXXDefaultArgExpr::Create(const ASTContext &C,
SourceLocation Loc,
ParmVarDecl *Param,
Expr *RewrittenExpr,
DeclContext *UsedContext) { … }
Expr *CXXDefaultArgExpr::getExpr() { … }
Expr *CXXDefaultArgExpr::getAdjustedRewrittenExpr() { … }
CXXDefaultInitExpr::CXXDefaultInitExpr(const ASTContext &Ctx,
SourceLocation Loc, FieldDecl *Field,
QualType Ty, DeclContext *UsedContext,
Expr *RewrittenInitExpr)
: … { … }
CXXDefaultInitExpr *CXXDefaultInitExpr::CreateEmpty(const ASTContext &C,
bool HasRewrittenInit) { … }
CXXDefaultInitExpr *CXXDefaultInitExpr::Create(const ASTContext &Ctx,
SourceLocation Loc,
FieldDecl *Field,
DeclContext *UsedContext,
Expr *RewrittenInitExpr) { … }
Expr *CXXDefaultInitExpr::getExpr() { … }
CXXTemporary *CXXTemporary::Create(const ASTContext &C,
const CXXDestructorDecl *Destructor) { … }
CXXBindTemporaryExpr *CXXBindTemporaryExpr::Create(const ASTContext &C,
CXXTemporary *Temp,
Expr* SubExpr) { … }
CXXTemporaryObjectExpr::CXXTemporaryObjectExpr(
CXXConstructorDecl *Cons, QualType Ty, TypeSourceInfo *TSI,
ArrayRef<Expr *> Args, SourceRange ParenOrBraceRange,
bool HadMultipleCandidates, bool ListInitialization,
bool StdInitListInitialization, bool ZeroInitialization)
: … { … }
CXXTemporaryObjectExpr::CXXTemporaryObjectExpr(EmptyShell Empty,
unsigned NumArgs)
: … { … }
CXXTemporaryObjectExpr *CXXTemporaryObjectExpr::Create(
const ASTContext &Ctx, CXXConstructorDecl *Cons, QualType Ty,
TypeSourceInfo *TSI, ArrayRef<Expr *> Args, SourceRange ParenOrBraceRange,
bool HadMultipleCandidates, bool ListInitialization,
bool StdInitListInitialization, bool ZeroInitialization) { … }
CXXTemporaryObjectExpr *
CXXTemporaryObjectExpr::CreateEmpty(const ASTContext &Ctx, unsigned NumArgs) { … }
SourceLocation CXXTemporaryObjectExpr::getBeginLoc() const { … }
SourceLocation CXXTemporaryObjectExpr::getEndLoc() const { … }
CXXConstructExpr *CXXConstructExpr::Create(
const ASTContext &Ctx, QualType Ty, SourceLocation Loc,
CXXConstructorDecl *Ctor, bool Elidable, ArrayRef<Expr *> Args,
bool HadMultipleCandidates, bool ListInitialization,
bool StdInitListInitialization, bool ZeroInitialization,
CXXConstructionKind ConstructKind, SourceRange ParenOrBraceRange) { … }
CXXConstructExpr *CXXConstructExpr::CreateEmpty(const ASTContext &Ctx,
unsigned NumArgs) { … }
CXXConstructExpr::CXXConstructExpr(
StmtClass SC, QualType Ty, SourceLocation Loc, CXXConstructorDecl *Ctor,
bool Elidable, ArrayRef<Expr *> Args, bool HadMultipleCandidates,
bool ListInitialization, bool StdInitListInitialization,
bool ZeroInitialization, CXXConstructionKind ConstructKind,
SourceRange ParenOrBraceRange)
: … { … }
CXXConstructExpr::CXXConstructExpr(StmtClass SC, EmptyShell Empty,
unsigned NumArgs)
: … { … }
LambdaCapture::LambdaCapture(SourceLocation Loc, bool Implicit,
LambdaCaptureKind Kind, ValueDecl *Var,
SourceLocation EllipsisLoc)
: … { … }
LambdaCaptureKind LambdaCapture::getCaptureKind() const { … }
LambdaExpr::LambdaExpr(QualType T, SourceRange IntroducerRange,
LambdaCaptureDefault CaptureDefault,
SourceLocation CaptureDefaultLoc, bool ExplicitParams,
bool ExplicitResultType, ArrayRef<Expr *> CaptureInits,
SourceLocation ClosingBrace,
bool ContainsUnexpandedParameterPack)
: … { … }
LambdaExpr::LambdaExpr(EmptyShell Empty, unsigned NumCaptures)
: … { … }
LambdaExpr *LambdaExpr::Create(const ASTContext &Context, CXXRecordDecl *Class,
SourceRange IntroducerRange,
LambdaCaptureDefault CaptureDefault,
SourceLocation CaptureDefaultLoc,
bool ExplicitParams, bool ExplicitResultType,
ArrayRef<Expr *> CaptureInits,
SourceLocation ClosingBrace,
bool ContainsUnexpandedParameterPack) { … }
LambdaExpr *LambdaExpr::CreateDeserialized(const ASTContext &C,
unsigned NumCaptures) { … }
void LambdaExpr::initBodyIfNeeded() const { … }
Stmt *LambdaExpr::getBody() const { … }
const CompoundStmt *LambdaExpr::getCompoundStmtBody() const { … }
bool LambdaExpr::isInitCapture(const LambdaCapture *C) const { … }
LambdaExpr::capture_iterator LambdaExpr::capture_begin() const { … }
LambdaExpr::capture_iterator LambdaExpr::capture_end() const { … }
LambdaExpr::capture_range LambdaExpr::captures() const { … }
LambdaExpr::capture_iterator LambdaExpr::explicit_capture_begin() const { … }
LambdaExpr::capture_iterator LambdaExpr::explicit_capture_end() const { … }
LambdaExpr::capture_range LambdaExpr::explicit_captures() const { … }
LambdaExpr::capture_iterator LambdaExpr::implicit_capture_begin() const { … }
LambdaExpr::capture_iterator LambdaExpr::implicit_capture_end() const { … }
LambdaExpr::capture_range LambdaExpr::implicit_captures() const { … }
CXXRecordDecl *LambdaExpr::getLambdaClass() const { … }
CXXMethodDecl *LambdaExpr::getCallOperator() const { … }
FunctionTemplateDecl *LambdaExpr::getDependentCallOperator() const { … }
TemplateParameterList *LambdaExpr::getTemplateParameterList() const { … }
ArrayRef<NamedDecl *> LambdaExpr::getExplicitTemplateParameters() const { … }
Expr *LambdaExpr::getTrailingRequiresClause() const { … }
bool LambdaExpr::isMutable() const { … }
LambdaExpr::child_range LambdaExpr::children() { … }
LambdaExpr::const_child_range LambdaExpr::children() const { … }
ExprWithCleanups::ExprWithCleanups(Expr *subexpr,
bool CleanupsHaveSideEffects,
ArrayRef<CleanupObject> objects)
: … { … }
ExprWithCleanups *ExprWithCleanups::Create(const ASTContext &C, Expr *subexpr,
bool CleanupsHaveSideEffects,
ArrayRef<CleanupObject> objects) { … }
ExprWithCleanups::ExprWithCleanups(EmptyShell empty, unsigned numObjects)
: … { … }
ExprWithCleanups *ExprWithCleanups::Create(const ASTContext &C,
EmptyShell empty,
unsigned numObjects) { … }
CXXUnresolvedConstructExpr::CXXUnresolvedConstructExpr(
QualType T, TypeSourceInfo *TSI, SourceLocation LParenLoc,
ArrayRef<Expr *> Args, SourceLocation RParenLoc, bool IsListInit)
: … { … }
CXXUnresolvedConstructExpr *CXXUnresolvedConstructExpr::Create(
const ASTContext &Context, QualType T, TypeSourceInfo *TSI,
SourceLocation LParenLoc, ArrayRef<Expr *> Args, SourceLocation RParenLoc,
bool IsListInit) { … }
CXXUnresolvedConstructExpr *
CXXUnresolvedConstructExpr::CreateEmpty(const ASTContext &Context,
unsigned NumArgs) { … }
SourceLocation CXXUnresolvedConstructExpr::getBeginLoc() const { … }
CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(
const ASTContext &Ctx, Expr *Base, QualType BaseType, bool IsArrow,
SourceLocation OperatorLoc, NestedNameSpecifierLoc QualifierLoc,
SourceLocation TemplateKWLoc, NamedDecl *FirstQualifierFoundInScope,
DeclarationNameInfo MemberNameInfo,
const TemplateArgumentListInfo *TemplateArgs)
: … { … }
CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr(
EmptyShell Empty, bool HasTemplateKWAndArgsInfo,
bool HasFirstQualifierFoundInScope)
: … { … }
CXXDependentScopeMemberExpr *CXXDependentScopeMemberExpr::Create(
const ASTContext &Ctx, Expr *Base, QualType BaseType, bool IsArrow,
SourceLocation OperatorLoc, NestedNameSpecifierLoc QualifierLoc,
SourceLocation TemplateKWLoc, NamedDecl *FirstQualifierFoundInScope,
DeclarationNameInfo MemberNameInfo,
const TemplateArgumentListInfo *TemplateArgs) { … }
CXXDependentScopeMemberExpr *CXXDependentScopeMemberExpr::CreateEmpty(
const ASTContext &Ctx, bool HasTemplateKWAndArgsInfo,
unsigned NumTemplateArgs, bool HasFirstQualifierFoundInScope) { … }
CXXThisExpr *CXXThisExpr::Create(const ASTContext &Ctx, SourceLocation L,
QualType Ty, bool IsImplicit) { … }
CXXThisExpr *CXXThisExpr::CreateEmpty(const ASTContext &Ctx) { … }
static bool hasOnlyNonStaticMemberFunctions(UnresolvedSetIterator begin,
UnresolvedSetIterator end) { … }
UnresolvedMemberExpr::UnresolvedMemberExpr(
const ASTContext &Context, bool HasUnresolvedUsing, Expr *Base,
QualType BaseType, bool IsArrow, SourceLocation OperatorLoc,
NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc,
const DeclarationNameInfo &MemberNameInfo,
const TemplateArgumentListInfo *TemplateArgs, UnresolvedSetIterator Begin,
UnresolvedSetIterator End)
: … { … }
UnresolvedMemberExpr::UnresolvedMemberExpr(EmptyShell Empty,
unsigned NumResults,
bool HasTemplateKWAndArgsInfo)
: … { … }
bool UnresolvedMemberExpr::isImplicitAccess() const { … }
UnresolvedMemberExpr *UnresolvedMemberExpr::Create(
const ASTContext &Context, bool HasUnresolvedUsing, Expr *Base,
QualType BaseType, bool IsArrow, SourceLocation OperatorLoc,
NestedNameSpecifierLoc QualifierLoc, SourceLocation TemplateKWLoc,
const DeclarationNameInfo &MemberNameInfo,
const TemplateArgumentListInfo *TemplateArgs, UnresolvedSetIterator Begin,
UnresolvedSetIterator End) { … }
UnresolvedMemberExpr *UnresolvedMemberExpr::CreateEmpty(
const ASTContext &Context, unsigned NumResults,
bool HasTemplateKWAndArgsInfo, unsigned NumTemplateArgs) { … }
CXXRecordDecl *UnresolvedMemberExpr::getNamingClass() { … }
SizeOfPackExpr *SizeOfPackExpr::Create(ASTContext &Context,
SourceLocation OperatorLoc,
NamedDecl *Pack, SourceLocation PackLoc,
SourceLocation RParenLoc,
std::optional<unsigned> Length,
ArrayRef<TemplateArgument> PartialArgs) { … }
SizeOfPackExpr *SizeOfPackExpr::CreateDeserialized(ASTContext &Context,
unsigned NumPartialArgs) { … }
NonTypeTemplateParmDecl *SubstNonTypeTemplateParmExpr::getParameter() const { … }
PackIndexingExpr *PackIndexingExpr::Create(
ASTContext &Context, SourceLocation EllipsisLoc, SourceLocation RSquareLoc,
Expr *PackIdExpr, Expr *IndexExpr, std::optional<int64_t> Index,
ArrayRef<Expr *> SubstitutedExprs, bool ExpandedToEmptyPack) { … }
NamedDecl *PackIndexingExpr::getPackDecl() const { … }
PackIndexingExpr *
PackIndexingExpr::CreateDeserialized(ASTContext &Context,
unsigned NumTransformedExprs) { … }
QualType SubstNonTypeTemplateParmExpr::getParameterType(
const ASTContext &Context) const { … }
SubstNonTypeTemplateParmPackExpr::SubstNonTypeTemplateParmPackExpr(
QualType T, ExprValueKind ValueKind, SourceLocation NameLoc,
const TemplateArgument &ArgPack, Decl *AssociatedDecl, unsigned Index)
: … { … }
NonTypeTemplateParmDecl *
SubstNonTypeTemplateParmPackExpr::getParameterPack() const { … }
TemplateArgument SubstNonTypeTemplateParmPackExpr::getArgumentPack() const { … }
FunctionParmPackExpr::FunctionParmPackExpr(QualType T, VarDecl *ParamPack,
SourceLocation NameLoc,
unsigned NumParams,
VarDecl *const *Params)
: … { … }
FunctionParmPackExpr *
FunctionParmPackExpr::Create(const ASTContext &Context, QualType T,
VarDecl *ParamPack, SourceLocation NameLoc,
ArrayRef<VarDecl *> Params) { … }
FunctionParmPackExpr *
FunctionParmPackExpr::CreateEmpty(const ASTContext &Context,
unsigned NumParams) { … }
MaterializeTemporaryExpr::MaterializeTemporaryExpr(
QualType T, Expr *Temporary, bool BoundToLvalueReference,
LifetimeExtendedTemporaryDecl *MTD)
: … { … }
void MaterializeTemporaryExpr::setExtendingDecl(ValueDecl *ExtendedBy,
unsigned ManglingNumber) { … }
bool MaterializeTemporaryExpr::isUsableInConstantExpressions(
const ASTContext &Context) const { … }
TypeTraitExpr::TypeTraitExpr(QualType T, SourceLocation Loc, TypeTrait Kind,
ArrayRef<TypeSourceInfo *> Args,
SourceLocation RParenLoc, bool Value)
: … { … }
TypeTraitExpr *TypeTraitExpr::Create(const ASTContext &C, QualType T,
SourceLocation Loc,
TypeTrait Kind,
ArrayRef<TypeSourceInfo *> Args,
SourceLocation RParenLoc,
bool Value) { … }
TypeTraitExpr *TypeTraitExpr::CreateDeserialized(const ASTContext &C,
unsigned NumArgs) { … }
CUDAKernelCallExpr::CUDAKernelCallExpr(Expr *Fn, CallExpr *Config,
ArrayRef<Expr *> Args, QualType Ty,
ExprValueKind VK, SourceLocation RP,
FPOptionsOverride FPFeatures,
unsigned MinNumArgs)
: … { … }
CUDAKernelCallExpr::CUDAKernelCallExpr(unsigned NumArgs, bool HasFPFeatures,
EmptyShell Empty)
: … { … }
CUDAKernelCallExpr *
CUDAKernelCallExpr::Create(const ASTContext &Ctx, Expr *Fn, CallExpr *Config,
ArrayRef<Expr *> Args, QualType Ty, ExprValueKind VK,
SourceLocation RP, FPOptionsOverride FPFeatures,
unsigned MinNumArgs) { … }
CUDAKernelCallExpr *CUDAKernelCallExpr::CreateEmpty(const ASTContext &Ctx,
unsigned NumArgs,
bool HasFPFeatures,
EmptyShell Empty) { … }
CXXParenListInitExpr *
CXXParenListInitExpr::Create(ASTContext &C, ArrayRef<Expr *> Args, QualType T,
unsigned NumUserSpecifiedExprs,
SourceLocation InitLoc, SourceLocation LParenLoc,
SourceLocation RParenLoc) { … }
CXXParenListInitExpr *CXXParenListInitExpr::CreateEmpty(ASTContext &C,
unsigned NumExprs,
EmptyShell Empty) { … }
CXXFoldExpr::CXXFoldExpr(QualType T, UnresolvedLookupExpr *Callee,
SourceLocation LParenLoc, Expr *LHS,
BinaryOperatorKind Opcode,
SourceLocation EllipsisLoc, Expr *RHS,
SourceLocation RParenLoc,
std::optional<unsigned> NumExpansions)
: … { … }