Lines Matching refs:Sema

62     Sema *S;
65 CheckDefaultArgumentVisitor(Expr *defarg, Sema *s) in CheckDefaultArgumentVisitor()
152 Sema::ImplicitExceptionSpecification::CalledDecl(SourceLocation CallLoc, in CalledDecl()
219 void Sema::ImplicitExceptionSpecification::CalledExpr(Expr *E) { in CalledExpr()
249 Sema::SetParamDefaultArgument(ParmVarDecl *Param, Expr *Arg, in SetParamDefaultArgument()
298 Sema::ActOnParamDefaultArgument(Decl *param, SourceLocation EqualLoc, in ActOnParamDefaultArgument()
343 void Sema::ActOnParamUnparsedDefaultArgument(Decl *param, in ActOnParamUnparsedDefaultArgument()
356 void Sema::ActOnParamDefaultArgumentError(Decl *param, in ActOnParamDefaultArgumentError()
375 void Sema::CheckExtraCXXDefaultArguments(Declarator &D) { in CheckExtraCXXDefaultArguments()
435 bool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old, in MergeCXXFunctionDecl()
687 Sema::ActOnDecompositionDeclarator(Scope *S, Declarator &D, in ActOnDecompositionDeclarator()
846 Sema &S, ArrayRef<BindingDecl *> Bindings, ValueDecl *Src, in checkSimpleDecomposition()
871 static bool checkArrayLikeDecomposition(Sema &S, in checkArrayLikeDecomposition()
886 static bool checkArrayDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings, in checkArrayDecomposition()
894 static bool checkVectorDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings, in checkVectorDecomposition()
903 static bool checkComplexDecomposition(Sema &S, in checkComplexDecomposition()
930 static bool lookupStdTypeTraitMember(Sema &S, LookupResult &TraitMemberLookup, in lookupStdTypeTraitMember()
952 Loc, Sema::LookupOrdinaryName); in lookupStdTypeTraitMember()
988 getTrivialIntegralTemplateArgument(Sema &S, SourceLocation Loc, QualType T, in getTrivialIntegralTemplateArgument()
995 getTrivialTypeTemplateArgument(Sema &S, SourceLocation Loc, QualType T) { in getTrivialTypeTemplateArgument()
1001 static IsTupleLike isTupleLike(Sema &S, SourceLocation Loc, QualType T, in isTupleLike()
1004 S, Sema::ExpressionEvaluationContext::ConstantEvaluated); in isTupleLike()
1007 LookupResult R(S, Value, Loc, Sema::LookupOrdinaryName); in isTupleLike()
1020 struct ICEDiagnoser : Sema::VerifyICEDiagnoser { in isTupleLike()
1025 void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) { in isTupleLike()
1049 static QualType getTupleLikeElementType(Sema &S, SourceLocation Loc, in getTupleLikeElementType()
1058 LookupResult R(S, TypeDN, Loc, Sema::LookupOrdinaryName); in getTupleLikeElementType()
1079 Sema &S;
1083 BindingDiagnosticTrap(Sema &S, BindingDecl *BD) in BindingDiagnosticTrap()
1092 static bool checkTupleLikeDecomposition(Sema &S, in checkTupleLikeDecomposition()
1111 LookupResult MemberGet(S, GetDN, Src->getLocation(), Sema::LookupMemberName); in checkTupleLikeDecomposition()
1230 static DeclAccessPair findDecomposableBaseClass(Sema &S, SourceLocation Loc, in findDecomposableBaseClass()
1301 static bool checkMemberDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings, in checkMemberDecomposition()
1390 void Sema::CheckCompleteDecompositionDeclaration(DecompositionDecl *DD) { in CheckCompleteDecompositionDeclaration()
1464 void Sema::MergeVarDeclExceptionSpecs(VarDecl *New, VarDecl *Old) { in MergeVarDeclExceptionSpecs()
1504 void Sema::CheckCXXDefaultArguments(FunctionDecl *FD) { in CheckCXXDefaultArguments()
1556 static bool CheckConstexprParameterTypes(Sema &SemaRef, in CheckConstexprParameterTypes()
1595 bool Sema::CheckConstexprFunctionDecl(const FunctionDecl *NewFD) { in CheckConstexprFunctionDecl()
1655 static bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl, in CheckConstexprDeclStmt()
1769 static void CheckConstexprCtorInitializer(Sema &SemaRef, in CheckConstexprCtorInitializer()
1808 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S, in CheckConstexprFunctionStmt()
1946 bool Sema::CheckConstexprFunctionBody(const FunctionDecl *Dcl, Stmt *Body) { in CheckConstexprFunctionBody()
2104 CXXRecordDecl *Sema::getCurrentClass(Scope *, const CXXScopeSpec *SS) { in getCurrentClass()
2122 bool Sema::isCurrentClassName(const IdentifierInfo &II, Scope *S, in isCurrentClassName()
2131 bool Sema::isCurrentClassNameTypo(IdentifierInfo *&II, const CXXScopeSpec *SS) { in isCurrentClassNameTypo()
2191 Sema::CheckBaseSpecifier(CXXRecordDecl *Class, in CheckBaseSpecifier()
2332 Sema::ActOnBaseSpecifier(Decl *classdecl, SourceRange SpecifierRange, in ActOnBaseSpecifier()
2404 bool Sema::AttachBaseSpecifiers(CXXRecordDecl *Class, in AttachBaseSpecifiers()
2510 void Sema::ActOnBaseSpecifiers(Decl *ClassDecl, in ActOnBaseSpecifiers()
2521 bool Sema::IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base) { in IsDerivedFrom()
2548 bool Sema::IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base, in IsDerivedFrom()
2586 void Sema::BuildBasePathArray(const CXXBasePaths &Paths, in BuildBasePathArray()
2605 Sema::CheckDerivedToBaseConversion(QualType Derived, QualType Base, in CheckDerivedToBaseConversion()
2687 Sema::CheckDerivedToBaseConversion(QualType Derived, QualType Base, in CheckDerivedToBaseConversion()
2710 std::string Sema::getAmbiguousPathsDisplayString(CXXBasePaths &Paths) { in getAmbiguousPathsDisplayString()
2734 bool Sema::ActOnAccessSpecifier(AccessSpecifier Access, SourceLocation ASLoc, in ActOnAccessSpecifier()
2745 void Sema::CheckOverrideControl(NamedDecl *D) { in CheckOverrideControl()
2813 void Sema::DiagnoseAbsenceOfOverrideControl(NamedDecl *D) { in DiagnoseAbsenceOfOverrideControl()
2841 bool Sema::CheckIfOverriddenFunctionIsMarkedFinal(const CXXMethodDecl *New, in CheckIfOverriddenFunctionIsMarkedFinal()
2875 void Sema::CheckShadowInheritedFields(const SourceLocation &Loc, in CheckShadowInheritedFields()
2931 Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D, in ActOnCXXMemberDeclarator()
3233 Sema &S;
3254 UninitializedFieldVisitor(Sema &S, in UninitializedFieldVisitor()
3569 Sema &SemaRef, const CXXConstructorDecl *Constructor) { in DiagnoseUninitializedFields()
3636 void Sema::ActOnStartCXXInClassMemberInitializer() { in ActOnStartCXXInClassMemberInitializer()
3645 void Sema::ActOnFinishCXXInClassMemberInitializer(Decl *D, in ActOnFinishCXXInClassMemberInitializer()
3703 static bool FindBaseInitializer(Sema &SemaRef, in FindBaseInitializer()
3746 Sema::ActOnMemInitializer(Decl *ConstructorD, in ActOnMemInitializer()
3762 Sema::ActOnMemInitializer(Decl *ConstructorD, in ActOnMemInitializer()
3802 ValueDecl *Sema::tryLookupCtorInitMemberDecl(CXXRecordDecl *ClassDecl, in tryLookupCtorInitMemberDecl()
3820 Sema::BuildMemInitializer(Decl *ConstructorD, in BuildMemInitializer()
3991 Sema::BuildMemberInitializer(ValueDecl *Member, Expr *Init, in BuildMemberInitializer()
4066 Sema::BuildDelegatingInitializer(TypeSourceInfo *TInfo, Expr *Init, in BuildDelegatingInitializer()
4123 Sema::BuildBaseInitializer(QualType BaseType, TypeSourceInfo *BaseTInfo, in BuildBaseInitializer()
4254 static Expr *CastForMoving(Sema &SemaRef, Expr *E, QualType T = QualType()) { in CastForMoving()
4277 BuildImplicitBaseInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor, in BuildImplicitBaseInitializer()
4360 BuildImplicitMemberInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor, in BuildImplicitMemberInitializer()
4392 Sema::LookupMemberName); in BuildImplicitMemberInitializer()
4520 Sema &S;
4528 BaseAndFieldInfo(Sema &S, CXXConstructorDecl *Ctor, bool ErrorsInInits) in BaseAndFieldInfo()
4624 static bool CollectFieldInitializer(Sema &SemaRef, BaseAndFieldInfo &Info, in CollectFieldInitializer()
4693 Sema::SetDelegatingInitializer(CXXConstructorDecl *Constructor, in SetDelegatingInitializer()
4714 bool Sema::SetCtorInitializers(CXXConstructorDecl *Constructor, bool AnyErrors, in SetCtorInitializers()
4915 Sema &SemaRef, const CXXConstructorDecl *Constructor, in DiagnoseBaseOrMemInitializerOrder()
4978 Sema::SemaDiagnosticBuilder D = in DiagnoseBaseOrMemInitializerOrder()
5006 bool CheckRedundantInit(Sema &S, in CheckRedundantInit()
5036 bool CheckRedundantUnionInit(Sema &S, in CheckRedundantUnionInit()
5072 void Sema::ActOnMemInitializers(Decl *ConstructorDecl, in ActOnMemInitializers()
5139 Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location, in MarkBaseAndMemberDestructorsReferenced()
5262 void Sema::ActOnDefaultCtorInitializers(Decl *CDtorDecl) { in ActOnDefaultCtorInitializers()
5273 bool Sema::isAbstractType(SourceLocation Loc, QualType T) { in isAbstractType()
5294 bool Sema::RequireNonAbstractType(SourceLocation Loc, QualType T, in RequireNonAbstractType()
5305 void Sema::DiagnoseAbstractType(const CXXRecordDecl *RD) { in DiagnoseAbstractType()
5359 Sema &S;
5364 AbstractUsageInfo(Sema &S, CXXRecordDecl *Record) in AbstractUsageInfo()
5376 void CheckType(const NamedDecl *D, TypeLoc TL, Sema::AbstractDiagSelID Sel);
5386 void Visit(TypeLoc TL, Sema::AbstractDiagSelID Sel) { in Visit()
5395 void Check(FunctionProtoTypeLoc TL, Sema::AbstractDiagSelID Sel) { in Check()
5396 Visit(TL.getReturnLoc(), Sema::AbstractReturnType); in Check()
5402 if (TSI) Visit(TSI->getTypeLoc(), Sema::AbstractParamType); in Check()
5406 void Check(ArrayTypeLoc TL, Sema::AbstractDiagSelID Sel) { in Check()
5407 Visit(TL.getElementLoc(), Sema::AbstractArrayType); in Check()
5410 void Check(TemplateSpecializationTypeLoc TL, Sema::AbstractDiagSelID Sel) { in Check()
5416 Visit(TSI->getTypeLoc(), Sema::AbstractNone); in Check()
5423 void Check(Type TL, Sema::AbstractDiagSelID Sel) { \
5424 Visit(TL.getNextTypeLoc(), Sema::AbstractNone); \
5434 void Check(TypeLoc TL, Sema::AbstractDiagSelID Sel) { in CheckPolymorphic()
5443 if (Sel == Sema::AbstractNone) return; in CheckPolymorphic()
5448 Sel = Sema::AbstractArrayType; in CheckPolymorphic()
5455 if (Sel == Sema::AbstractArrayType) { in CheckPolymorphic()
5467 Sema::AbstractDiagSelID Sel) { in CheckType()
5485 Info.CheckType(MD, TSI->getTypeLoc(), Sema::AbstractNone); in CheckAbstractClassUsage()
5505 Info.CheckType(FD, TSI->getTypeLoc(), Sema::AbstractFieldType); in CheckAbstractClassUsage()
5509 Info.CheckType(VD, TSI->getTypeLoc(), Sema::AbstractVariableType); in CheckAbstractClassUsage()
5521 static void ReferenceDllExportedMembers(Sema &S, CXXRecordDecl *Class) { in ReferenceDllExportedMembers()
5586 static void checkForMultipleExportedDefaultConstructors(Sema &S, in checkForMultipleExportedDefaultConstructors()
5624 void Sema::checkClassLevelCodeSegAttribute(CXXRecordDecl *Class) { in checkClassLevelCodeSegAttribute()
5635 void Sema::checkClassLevelDLLAttribute(CXXRecordDecl *Class) { in checkClassLevelDLLAttribute()
5799 void Sema::propagateDLLAttrToBaseClassTemplate( in propagateDLLAttrToBaseClassTemplate()
5857 static void DefineImplicitSpecialMember(Sema &S, CXXMethodDecl *MD, in DefineImplicitSpecialMember()
5860 case Sema::CXXDefaultConstructor: in DefineImplicitSpecialMember()
5864 case Sema::CXXCopyConstructor: in DefineImplicitSpecialMember()
5867 case Sema::CXXCopyAssignment: in DefineImplicitSpecialMember()
5870 case Sema::CXXDestructor: in DefineImplicitSpecialMember()
5873 case Sema::CXXMoveConstructor: in DefineImplicitSpecialMember()
5876 case Sema::CXXMoveAssignment: in DefineImplicitSpecialMember()
5879 case Sema::CXXInvalid: in DefineImplicitSpecialMember()
5886 static bool canPassInRegisters(Sema &S, CXXRecordDecl *D, in canPassInRegisters()
5998 void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) { in CheckCompletedCXXClass()
6202 static Sema::SpecialMemberOverloadResult lookupCallFromSpecialMember( in lookupCallFromSpecialMember()
6203 Sema &S, CXXRecordDecl *Class, Sema::CXXSpecialMember CSM, in lookupCallFromSpecialMember()
6206 if (CSM == Sema::CXXCopyAssignment || CSM == Sema::CXXMoveAssignment) in lookupCallFromSpecialMember()
6210 if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor) in lookupCallFromSpecialMember()
6223 class Sema::InheritedConstructorInfo {
6224 Sema &S;
6234 InheritedConstructorInfo(Sema &S, SourceLocation UseLoc, in InheritedConstructorInfo()
6307 specialMemberIsConstexpr(Sema &S, CXXRecordDecl *ClassDecl, in specialMemberIsConstexpr()
6308 Sema::CXXSpecialMember CSM, unsigned Quals, in specialMemberIsConstexpr()
6311 Sema::InheritedConstructorInfo *Inherited = nullptr) { in specialMemberIsConstexpr()
6315 assert(CSM == Sema::CXXDefaultConstructor); in specialMemberIsConstexpr()
6322 if (CSM == Sema::CXXDefaultConstructor) in specialMemberIsConstexpr()
6325 Sema::SpecialMemberOverloadResult SMOR = in specialMemberIsConstexpr()
6337 Sema &S, CXXRecordDecl *ClassDecl, Sema::CXXSpecialMember CSM, in defaultedSpecialMemberIsConstexpr()
6339 Sema::InheritedConstructorInfo *Inherited = nullptr) { in defaultedSpecialMemberIsConstexpr()
6347 case Sema::CXXDefaultConstructor: in defaultedSpecialMemberIsConstexpr()
6358 case Sema::CXXCopyConstructor: in defaultedSpecialMemberIsConstexpr()
6359 case Sema::CXXMoveConstructor: in defaultedSpecialMemberIsConstexpr()
6363 case Sema::CXXCopyAssignment: in defaultedSpecialMemberIsConstexpr()
6364 case Sema::CXXMoveAssignment: in defaultedSpecialMemberIsConstexpr()
6371 case Sema::CXXDestructor: in defaultedSpecialMemberIsConstexpr()
6372 case Sema::CXXInvalid: in defaultedSpecialMemberIsConstexpr()
6384 return CSM == Sema::CXXDefaultConstructor in defaultedSpecialMemberIsConstexpr()
6422 if (CSM == Sema::CXXDefaultConstructor && F->hasInClassInitializer()) in defaultedSpecialMemberIsConstexpr()
6431 } else if (CSM == Sema::CXXDefaultConstructor) { in defaultedSpecialMemberIsConstexpr()
6440 static Sema::ImplicitExceptionSpecification
6442 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
6443 Sema::InheritedConstructorInfo *ICI);
6445 static Sema::ImplicitExceptionSpecification
6446 computeImplicitExceptionSpec(Sema &S, SourceLocation Loc, CXXMethodDecl *MD) { in computeImplicitExceptionSpec()
6448 if (CSM != Sema::CXXInvalid) in computeImplicitExceptionSpec()
6454 Sema::InheritedConstructorInfo ICI( in computeImplicitExceptionSpec()
6457 S, Loc, CD, Sema::CXXDefaultConstructor, &ICI); in computeImplicitExceptionSpec()
6460 static FunctionProtoType::ExtProtoInfo getImplicitMethodEPI(Sema &S, in getImplicitMethodEPI()
6475 void Sema::EvaluateImplicitExceptionSpec(SourceLocation Loc, CXXMethodDecl *MD) { in EvaluateImplicitExceptionSpec()
6496 void Sema::CheckExplicitlyDefaultedSpecialMember(CXXMethodDecl *MD) { in CheckExplicitlyDefaultedSpecialMember()
6704 void Sema::CheckExplicitlyDefaultedMemberExceptionSpec( in CheckExplicitlyDefaultedMemberExceptionSpec()
6729 void Sema::CheckDelayedMemberExceptionSpecs() { in CheckDelayedMemberExceptionSpecs()
6759 Sema &S;
6761 Sema::CXXSpecialMember CSM;
6762 Sema::InheritedConstructorInfo *ICI;
6767 SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM, in SpecialMemberVisitor()
6768 Sema::InheritedConstructorInfo *ICI) in SpecialMemberVisitor()
6771 case Sema::CXXDefaultConstructor: in SpecialMemberVisitor()
6772 case Sema::CXXCopyConstructor: in SpecialMemberVisitor()
6773 case Sema::CXXMoveConstructor: in SpecialMemberVisitor()
6776 case Sema::CXXCopyAssignment: in SpecialMemberVisitor()
6777 case Sema::CXXMoveAssignment: in SpecialMemberVisitor()
6780 case Sema::CXXDestructor: in SpecialMemberVisitor()
6782 case Sema::CXXInvalid: in SpecialMemberVisitor()
6797 return CSM == Sema::CXXMoveConstructor || CSM == Sema::CXXMoveAssignment; in isMove()
6801 Sema::SpecialMemberOverloadResult lookupIn(CXXRecordDecl *Class, in lookupIn()
6809 Sema::SpecialMemberOverloadResult lookupInheritedCtor(CXXRecordDecl *Class) { in lookupInheritedCtor()
6812 assert(CSM == Sema::CXXDefaultConstructor); in lookupInheritedCtor()
6881 SpecialMemberDeletionInfo(Sema &S, CXXMethodDecl *MD, in SpecialMemberDeletionInfo()
6882 Sema::CXXSpecialMember CSM, in SpecialMemberDeletionInfo()
6883 Sema::InheritedConstructorInfo *ICI, bool Diagnose) in SpecialMemberDeletionInfo()
6889 Sema::CXXSpecialMember getEffectiveCSM() { in getEffectiveCSM()
6890 return ICI ? Sema::CXXInvalid : CSM; in getEffectiveCSM()
6903 Sema::SpecialMemberOverloadResult SMOR,
6933 Subobject Subobj, Sema::SpecialMemberOverloadResult SMOR, in shouldDeleteForSubobjectCall()
6940 if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::NoMemberOrDeleted) in shouldDeleteForSubobjectCall()
6942 else if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous) in shouldDeleteForSubobjectCall()
7002 if (!(CSM == Sema::CXXDefaultConstructor && in shouldDeleteForClassSubobject()
7012 Sema::SpecialMemberOverloadResult SMOR = in shouldDeleteForClassSubobject()
7013 S.LookupSpecialMember(Class, Sema::CXXDestructor, in shouldDeleteForClassSubobject()
7032 Sema::SpecialMemberOverloadResult SMOR = lookupInheritedCtor(BaseClass); in shouldDeleteForBase()
7056 if (CSM == Sema::CXXDefaultConstructor) { in shouldDeleteForField()
7080 } else if (CSM == Sema::CXXCopyConstructor) { in shouldDeleteForField()
7128 if (CSM == Sema::CXXDefaultConstructor && AllVariantFieldsAreConst && in shouldDeleteForField()
7156 if (CSM == Sema::CXXDefaultConstructor && inUnion() && AllFieldsAreConst) { in shouldDeleteForAllConstMembers()
7175 bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM, in ShouldDeleteSpecialMember()
7317 static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD, in findTrivialSpecialMember()
7318 Sema::CXXSpecialMember CSM, unsigned Quals, in findTrivialSpecialMember()
7320 Sema::TrivialABIHandling TAH, in findTrivialSpecialMember()
7326 case Sema::CXXInvalid: in findTrivialSpecialMember()
7329 case Sema::CXXDefaultConstructor: in findTrivialSpecialMember()
7358 case Sema::CXXDestructor: in findTrivialSpecialMember()
7363 (TAH == Sema::TAH_ConsiderTrivialABI && in findTrivialSpecialMember()
7375 case Sema::CXXCopyConstructor: in findTrivialSpecialMember()
7380 (TAH == Sema::TAH_ConsiderTrivialABI && in findTrivialSpecialMember()
7396 case Sema::CXXCopyAssignment: in findTrivialSpecialMember()
7411 case Sema::CXXMoveConstructor: in findTrivialSpecialMember()
7412 case Sema::CXXMoveAssignment: in findTrivialSpecialMember()
7414 Sema::SpecialMemberOverloadResult SMOR = in findTrivialSpecialMember()
7421 if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous) in findTrivialSpecialMember()
7426 Sema::SpecialMemberOverloadResult::NoMemberOrDeleted); in findTrivialSpecialMember()
7435 if (TAH == Sema::TAH_ConsiderTrivialABI && in findTrivialSpecialMember()
7436 (CSM == Sema::CXXCopyConstructor || CSM == Sema::CXXMoveConstructor)) in findTrivialSpecialMember()
7472 static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc, in checkTrivialSubobjectCall()
7474 Sema::CXXSpecialMember CSM, in checkTrivialSubobjectCall()
7476 Sema::TrivialABIHandling TAH, bool Diagnose) { in checkTrivialSubobjectCall()
7490 if (!Selected && CSM == Sema::CXXDefaultConstructor) { in checkTrivialSubobjectCall()
7513 S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI, in checkTrivialSubobjectCall()
7523 static bool checkTrivialClassMembers(Sema &S, CXXRecordDecl *RD, in checkTrivialClassMembers()
7524 Sema::CXXSpecialMember CSM, in checkTrivialClassMembers()
7526 Sema::TrivialABIHandling TAH, in checkTrivialClassMembers()
7546 if (CSM == Sema::CXXDefaultConstructor && FI->hasInClassInitializer()) { in checkTrivialClassMembers()
7574 void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD, CXXSpecialMember CSM) { in DiagnoseNontrivial()
7586 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMember CSM, in SpecialMemberIsTrivial()
7725 Sema *S;
7803 void Sema::FindHiddenVirtualMethods(CXXMethodDecl *MD, in FindHiddenVirtualMethods()
7831 void Sema::NoteHiddenVirtualMethods(CXXMethodDecl *MD, in NoteHiddenVirtualMethods()
7844 void Sema::DiagnoseHiddenVirtualMethods(CXXMethodDecl *MD) { in DiagnoseHiddenVirtualMethods()
7861 void Sema::checkIllFormedTrivialABIStruct(CXXRecordDecl &RD) { in checkIllFormedTrivialABIStruct()
7905 void Sema::ActOnFinishCXXMemberSpecification( in ActOnFinishCXXMemberSpecification()
7934 void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) { in AddImplicitlyDeclaredMembersToClass()
8008 unsigned Sema::ActOnReenterTemplateScope(Scope *S, Decl *D) { in ActOnReenterTemplateScope()
8059 void Sema::ActOnStartDelayedMemberDeclarations(Scope *S, Decl *RecordD) { in ActOnStartDelayedMemberDeclarations()
8066 void Sema::ActOnFinishDelayedMemberDeclarations(Scope *S, Decl *RecordD) { in ActOnFinishDelayedMemberDeclarations()
8074 void Sema::ActOnReenterCXXMethodParameter(Scope *S, ParmVarDecl *Param) { in ActOnReenterCXXMethodParameter()
8091 void Sema::ActOnStartDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) { in ActOnStartDelayedCXXMethodDeclaration()
8099 void Sema::ActOnDelayedCXXMethodParameter(Scope *S, Decl *ParamD) { in ActOnDelayedCXXMethodParameter()
8121 void Sema::ActOnFinishDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) { in ActOnFinishDelayedCXXMethodDeclaration()
8147 QualType Sema::CheckConstructorDeclarator(Declarator &D, QualType R, in CheckConstructorDeclarator()
8217 void Sema::CheckConstructor(CXXConstructorDecl *Constructor) { in CheckConstructor()
8254 bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) { in CheckDestructor()
8309 QualType Sema::CheckDestructorDeclarator(Declarator &D, QualType R, in CheckDestructorDeclarator()
8438 void Sema::CheckConversionDeclarator(Declarator &D, QualType &R, in CheckConversionDeclarator()
8604 Decl *Sema::ActOnConversionDeclarator(CXXConversionDecl *Conversion) { in ActOnConversionDeclarator()
8651 BadSpecifierDiagnoser(Sema &S, SourceLocation Loc, unsigned DiagID) in BadSpecifierDiagnoser()
8671 Sema &S;
8672 Sema::SemaDiagnosticBuilder Diagnostic;
8681 void Sema::CheckDeductionGuideDeclarator(Declarator &D, QualType &R, in CheckDeductionGuideDeclarator()
8799 static void DiagnoseNamespaceInlineMismatch(Sema &S, SourceLocation KeywordLoc, in DiagnoseNamespaceInlineMismatch()
8839 Decl *Sema::ActOnStartNamespaceDef( in ActOnStartNamespaceDef()
8992 void Sema::ActOnFinishNamespaceDef(Decl *Dcl, SourceLocation RBrace) { in ActOnFinishNamespaceDef()
9001 CXXRecordDecl *Sema::getStdBadAlloc() const { in getStdBadAlloc()
9006 EnumDecl *Sema::getStdAlignValT() const { in getStdAlignValT()
9010 NamespaceDecl *Sema::getStdNamespace() const { in getStdNamespace()
9015 NamespaceDecl *Sema::lookupStdExperimentalNamespace() { in lookupStdExperimentalNamespace()
9039 Sema &S;
9062 QualType Sema::CheckComparisonCategoryType(ComparisonCategoryType Kind, in CheckComparisonCategoryType()
9161 NamespaceDecl *Sema::getOrCreateStdNamespace() { in getOrCreateStdNamespace()
9176 bool Sema::isStdInitializerList(QualType Ty, QualType *Element) { in isStdInitializerList()
9236 static ClassTemplateDecl *LookupStdInitializerList(Sema &S, SourceLocation Loc){ in LookupStdInitializerList()
9244 Loc, Sema::LookupOrdinaryName); in LookupStdInitializerList()
9270 QualType Sema::BuildStdInitializerList(QualType Element, SourceLocation Loc) { in BuildStdInitializerList()
9285 bool Sema::isInitListConstructor(const FunctionDecl *Ctor) { in isInitListConstructor()
9329 static bool TryNamespaceTypoCorrection(Sema &S, LookupResult &R, Scope *Sc, in TryNamespaceTypoCorrection()
9337 Sema::CTK_ErrorRecovery)) { in TryNamespaceTypoCorrection()
9357 Decl *Sema::ActOnUsingDirective(Scope *S, SourceLocation UsingLoc, in ActOnUsingDirective()
9440 void Sema::PushUsingDirective(Scope *S, UsingDirectiveDecl *UDir) { in PushUsingDirective()
9453 Decl *Sema::ActOnUsingDeclaration(Scope *S, AccessSpecifier AS, in ActOnUsingDeclaration()
9555 bool Sema::CheckUsingShadowDecl(UsingDecl *Using, NamedDecl *Orig, in CheckUsingShadowDecl()
9723 UsingShadowDecl *Sema::BuildUsingShadowDecl(Scope *S, in BuildUsingShadowDecl()
9793 void Sema::HideUsingShadowDecl(Scope *S, UsingShadowDecl *Shadow) { in HideUsingShadowDecl()
9914 NamedDecl *Sema::BuildUsingDeclaration( in BuildUsingDeclaration()
10173 NamedDecl *Sema::BuildUsingPackDecl(NamedDecl *InstantiatedFrom, in BuildUsingPackDecl()
10187 bool Sema::CheckInheritingConstructorUsingDecl(UsingDecl *UD) { in CheckInheritingConstructorUsingDecl()
10217 bool Sema::CheckUsingDeclRedeclaration(SourceLocation UsingLoc, in CheckUsingDeclRedeclaration()
10295 bool Sema::CheckUsingDeclQualifier(SourceLocation UsingLoc, in CheckUsingDeclQualifier()
10483 Decl *Sema::ActOnAliasDeclaration(Scope *S, AccessSpecifier AS, in ActOnAliasDeclaration()
10639 Decl *Sema::ActOnNamespaceAliasDef(Scope *S, SourceLocation NamespaceLoc, in ActOnNamespaceAliasDef()
10720 Sema::ImplicitExceptionSpecification ExceptSpec;
10722 SpecialMemberExceptionSpecInfo(Sema &S, CXXMethodDecl *MD, in SpecialMemberExceptionSpecInfo()
10723 Sema::CXXSpecialMember CSM, in SpecialMemberExceptionSpecInfo()
10724 Sema::InheritedConstructorInfo *ICI, in SpecialMemberExceptionSpecInfo()
10735 Sema::SpecialMemberOverloadResult SMOR);
10745 Sema::SpecialMemberOverloadResult SMOR = lookupInheritedCtor(BaseClass); in visitBase()
10756 if (CSM == Sema::CXXDefaultConstructor && FD->hasInClassInitializer()) { in visitField()
10784 Subobject Subobj, Sema::SpecialMemberOverloadResult SMOR) { in visitSubobjectCall()
10794 Sema &S;
10796 ComputingExceptionSpec(Sema &S, CXXMethodDecl *MD, SourceLocation Loc) in ComputingExceptionSpec()
10798 Sema::CodeSynthesisContext Ctx; in ComputingExceptionSpec()
10799 Ctx.Kind = Sema::CodeSynthesisContext::ExceptionSpecEvaluation; in ComputingExceptionSpec()
10810 static Sema::ImplicitExceptionSpecification
10812 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM, in ComputeDefaultedSpecialMemberExceptionSpec()
10813 Sema::InheritedConstructorInfo *ICI) { in ComputeDefaultedSpecialMemberExceptionSpec()
10857 Sema &S;
10858 Sema::SpecialMemberDecl D;
10859 Sema::ContextRAII SavedContext;
10862 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM) in DeclaringSpecialMember()
10872 Sema::CodeSynthesisContext Ctx; in DeclaringSpecialMember()
10873 Ctx.Kind = Sema::CodeSynthesisContext::DeclaringSpecialMember; in DeclaringSpecialMember()
10900 void Sema::CheckImplicitSpecialMemberDeclaration(Scope *S, FunctionDecl *FD) { in CheckImplicitSpecialMemberDeclaration()
10915 void Sema::setupImplicitSpecialMemberType(CXXMethodDecl *SpecialMem, in setupImplicitSpecialMemberType()
10931 CXXConstructorDecl *Sema::DeclareImplicitDefaultConstructor( in DeclareImplicitDefaultConstructor()
10993 void Sema::DefineImplicitDefaultConstructor(SourceLocation CurrentLocation, in DefineImplicitDefaultConstructor()
11034 void Sema::ActOnFinishDelayedMemberInitializers(Decl *D) { in ActOnFinishDelayedMemberInitializers()
11042 Sema::findInheritingConstructor(SourceLocation Loc, in findInheritingConstructor()
11122 void Sema::NoteDeletedInheritingConstructor(CXXConstructorDecl *Ctor) { in NoteDeletedInheritingConstructor()
11129 void Sema::DefineInheritingConstructor(SourceLocation CurrentLocation, in DefineInheritingConstructor()
11210 CXXDestructorDecl *Sema::DeclareImplicitDestructor(CXXRecordDecl *ClassDecl) { in DeclareImplicitDestructor()
11271 void Sema::DefineImplicitDestructor(SourceLocation CurrentLocation, in DefineImplicitDestructor()
11315 void Sema::ActOnFinishCXXMemberDecls() { in ActOnFinishCXXMemberDecls()
11328 void Sema::ActOnFinishCXXNonNestedClass(Decl *D) { in ActOnFinishCXXNonNestedClass()
11332 void Sema::referenceDLLExportedClassMethods() { in referenceDLLExportedClassMethods()
11343 void Sema::AdjustDestructorExceptionSpec(CXXDestructorDecl *Destructor) { in AdjustDestructorExceptionSpec()
11392 virtual Expr *build(Sema &S, SourceLocation Loc) const = 0;
11400 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11410 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11422 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11437 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11453 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11469 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11480 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11493 Expr *build(Sema &S, SourceLocation Loc) const override { in build()
11509 buildMemcpyForAssignmentOp(Sema &S, SourceLocation Loc, QualType T, in buildMemcpyForAssignmentOp()
11537 Sema::LookupOrdinaryName); in buildMemcpyForAssignmentOp()
11588 buildSingleCopyAssignRecursively(Sema &S, SourceLocation Loc, QualType T, in buildSingleCopyAssignRecursively()
11612 LookupResult OpLookup(S, Name, Loc, Sema::LookupOrdinaryName); in buildSingleCopyAssignRecursively()
11775 S.ActOnCondition(nullptr, Loc, Comparison, Sema::ConditionKind::Boolean), in buildSingleCopyAssignRecursively()
11780 buildSingleCopyAssign(Sema &S, SourceLocation Loc, QualType T, in buildSingleCopyAssign()
11800 CXXMethodDecl *Sema::DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl) { in DeclareImplicitCopyAssignment()
11880 static void diagnoseDeprecatedCopyOperation(Sema &S, CXXMethodDecl *CopyOp) { in diagnoseDeprecatedCopyOperation()
11922 void Sema::DefineImplicitCopyAssignment(SourceLocation CurrentLocation, in DefineImplicitCopyAssignment()
12126 CXXMethodDecl *Sema::DeclareImplicitMoveAssignment(CXXRecordDecl *ClassDecl) { in DeclareImplicitMoveAssignment()
12203 static void checkMoveAssignmentForRepeatedMove(Sema &S, CXXRecordDecl *Class, in checkMoveAssignmentForRepeatedMove()
12236 Sema::SpecialMemberOverloadResult SMOR = in checkMoveAssignmentForRepeatedMove()
12237 S.LookupSpecialMember(Base, Sema::CXXMoveAssignment, in checkMoveAssignmentForRepeatedMove()
12284 void Sema::DefineImplicitMoveAssignment(SourceLocation CurrentLocation, in DefineImplicitMoveAssignment()
12495 CXXConstructorDecl *Sema::DeclareImplicitCopyConstructor( in DeclareImplicitCopyConstructor()
12583 void Sema::DefineImplicitCopyConstructor(SourceLocation CurrentLocation, in DefineImplicitCopyConstructor()
12620 Sema::CompoundScopeRAII CompoundScope(*this); in DefineImplicitCopyConstructor()
12631 CXXConstructorDecl *Sema::DeclareImplicitMoveConstructor( in DeclareImplicitMoveConstructor()
12713 void Sema::DefineImplicitMoveConstructor(SourceLocation CurrentLocation, in DefineImplicitMoveConstructor()
12743 Sema::CompoundScopeRAII CompoundScope(*this); in DefineImplicitMoveConstructor()
12754 bool Sema::isImplicitlyDeleted(FunctionDecl *FD) { in isImplicitlyDeleted()
12758 void Sema::DefineImplicitLambdaToFunctionPointerConversion( in DefineImplicitLambdaToFunctionPointerConversion()
12816 void Sema::DefineImplicitLambdaToBlockPointerConversion( in DefineImplicitLambdaToBlockPointerConversion()
12888 Sema::BuildCXXConstructExpr(SourceLocation ConstructLoc, QualType DeclInitType, in BuildCXXConstructExpr()
12926 Sema::BuildCXXConstructExpr(SourceLocation ConstructLoc, QualType DeclInitType, in BuildCXXConstructExpr()
12952 Sema::BuildCXXConstructExpr(SourceLocation ConstructLoc, QualType DeclInitType, in BuildCXXConstructExpr()
12978 ExprResult Sema::BuildCXXDefaultInitExpr(SourceLocation Loc, FieldDecl *Field) { in BuildCXXDefaultInitExpr()
13051 void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) { in FinalizeVarWithDestructor()
13088 Sema::CompleteConstructorCall(CXXConstructorDecl *Constructor, in CompleteConstructorCall()
13130 CheckOperatorNewDeleteDeclarationScope(Sema &SemaRef, in CheckOperatorNewDeleteDeclarationScope()
13150 RemoveAddressSpaceFromPtr(Sema &SemaRef, const PointerType *PtrTy) { in RemoveAddressSpaceFromPtr()
13157 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl, in CheckOperatorNewDeleteTypes()
13219 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) { in CheckOperatorNewDeclaration()
13250 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) { in CheckOperatorDeleteDeclaration()
13294 bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { in CheckOverloadedOperatorDeclaration()
13429 checkLiteralOperatorTemplateParameterList(Sema &SemaRef, in checkLiteralOperatorTemplateParameterList()
13474 bool Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) { in CheckLiteralOperatorDeclaration()
13645 Decl *Sema::ActOnStartLinkageSpecification(Scope *S, SourceLocation ExternLoc, in ActOnStartLinkageSpecification()
13681 Decl *Sema::ActOnFinishLinkageSpecification(Scope *S, in ActOnFinishLinkageSpecification()
13692 Decl *Sema::ActOnEmptyDeclaration(Scope *S, in ActOnEmptyDeclaration()
13707 VarDecl *Sema::BuildExceptionDeclaration(Scope *S, in BuildExceptionDeclaration()
13834 Decl *Sema::ActOnExceptionDeclarator(Scope *S, Declarator &D) { in ActOnExceptionDeclarator()
13885 Decl *Sema::ActOnStaticAssertDeclaration(SourceLocation StaticAssertLoc, in ActOnStaticAssertDeclaration()
13899 Decl *Sema::BuildStaticAssertDeclaration(SourceLocation StaticAssertLoc, in BuildStaticAssertDeclaration()
13963 FriendDecl *Sema::CheckFriendTypeDecl(SourceLocation LocStart, in CheckFriendTypeDecl()
14035 Decl *Sema::ActOnTemplatedFriendTag(Scope *S, SourceLocation FriendLoc, in ActOnTemplatedFriendTag()
14169 Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS, in ActOnFriendTypeDecl()
14260 NamedDecl *Sema::ActOnFriendFunctionDecl(Scope *S, Declarator &D, in ActOnFriendFunctionDecl()
14577 void Sema::SetDeclDeleted(Decl *Dcl, SourceLocation DelLoc) { in SetDeclDeleted()
14645 void Sema::SetDeclDefaulted(Decl *Dcl, SourceLocation DefaultLoc) { in SetDeclDefaulted()
14693 static void SearchForReturnInStmt(Sema &Self, Stmt *S) { in SearchForReturnInStmt()
14705 void Sema::DiagnoseReturnInConstructorExceptionHandler(CXXTryStmt *TryBlock) { in DiagnoseReturnInConstructorExceptionHandler()
14712 bool Sema::CheckOverridingFunctionAttributes(const CXXMethodDecl *New, in CheckOverridingFunctionAttributes()
14760 bool Sema::CheckOverridingFunctionReturnType(const CXXMethodDecl *New, in CheckOverridingFunctionReturnType()
14871 bool Sema::CheckPureMethod(CXXMethodDecl *Method, SourceRange InitRange) { in CheckPureMethod()
14887 void Sema::ActOnPureSpecifier(Decl *D, SourceLocation ZeroLoc) { in ActOnPureSpecifier()
14912 void Sema::ActOnCXXEnterDeclInitializer(Scope *S, Decl *D) { in ActOnCXXEnterDeclInitializer()
14933 void Sema::ActOnCXXExitDeclInitializer(Scope *S, Decl *D) { in ActOnCXXExitDeclInitializer()
14948 DeclResult Sema::ActOnCXXConditionDeclaration(Scope *S, Declarator &D) { in ActOnCXXConditionDeclaration()
14969 void Sema::LoadExternalVTableUses() { in LoadExternalVTableUses()
14993 void Sema::MarkVTableUsed(SourceLocation Loc, CXXRecordDecl *Class, in MarkVTableUsed()
15055 bool Sema::DefineUsedVTables() { in DefineUsedVTables()
15149 void Sema::MarkVirtualMemberExceptionSpecsNeeded(SourceLocation Loc, in MarkVirtualMemberExceptionSpecsNeeded()
15156 void Sema::MarkVirtualMembersReferenced(SourceLocation Loc, in MarkVirtualMembersReferenced()
15192 void Sema::SetIvarInitializers(ObjCImplementationDecl *ObjCImplementation) { in SetIvarInitializers()
15250 Sema &S) { in DelegatingCycleHelper()
15310 void Sema::CheckDelegatingCtorCycles() { in CheckDelegatingCtorCycles()
15326 Sema &S;
15329 explicit FindCXXThisExpr(Sema &S) : S(S) { } in FindCXXThisExpr()
15339 bool Sema::checkThisInStaticMemberFunctionType(CXXMethodDecl *Method) { in checkThisInStaticMemberFunctionType()
15371 bool Sema::checkThisInStaticMemberFunctionExceptionSpec(CXXMethodDecl *Method) { in checkThisInStaticMemberFunctionExceptionSpec()
15412 bool Sema::checkThisInStaticMemberFunctionAttributes(CXXMethodDecl *Method) { in checkThisInStaticMemberFunctionAttributes()
15459 void Sema::checkExceptionSpecification( in checkExceptionSpecification()
15508 void Sema::actOnDelayedExceptionSpecification(Decl *MethodD, in actOnDelayedExceptionSpecification()
15547 MSPropertyDecl *Sema::HandleMSProperty(Scope *S, RecordDecl *Record, in HandleMSProperty()