Lines Matching refs:Sema

36 #include "clang/Sema/CXXFieldCollector.h"
37 #include "clang/Sema/DeclSpec.h"
38 #include "clang/Sema/EnterExpressionEvaluationContext.h"
39 #include "clang/Sema/Initialization.h"
40 #include "clang/Sema/Lookup.h"
41 #include "clang/Sema/Ownership.h"
42 #include "clang/Sema/ParsedTemplate.h"
43 #include "clang/Sema/Scope.h"
44 #include "clang/Sema/ScopeInfo.h"
45 #include "clang/Sema/SemaCUDA.h"
46 #include "clang/Sema/SemaInternal.h"
47 #include "clang/Sema/SemaObjC.h"
48 #include "clang/Sema/SemaOpenMP.h"
49 #include "clang/Sema/Template.h"
76 Sema &S;
80 CheckDefaultArgumentVisitor(Sema &S, const Expr *DefaultArg)
186 Sema::ImplicitExceptionSpecification::CalledDecl(SourceLocation CallLoc,
254 void Sema::ImplicitExceptionSpecification::CalledStmt(Stmt *S) {
283 ExprResult Sema::ConvertParamDefaultArgument(ParmVarDecl *Param, Expr *Arg,
311 void Sema::SetParamDefaultArgument(ParmVarDecl *Param, Expr *Arg,
330 Sema::ActOnParamDefaultArgument(Decl *param, SourceLocation EqualLoc,
374 void Sema::ActOnParamUnparsedDefaultArgument(Decl *param,
385 void Sema::ActOnParamDefaultArgumentError(Decl *param, SourceLocation EqualLoc,
404 void Sema::CheckExtraCXXDefaultArguments(Declarator &D) {
455 bool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old,
717 void Sema::DiagPlaceholderVariableDefinition(SourceLocation Loc) {
724 Sema::ActOnDecompositionDeclarator(Scope *S, Declarator &D,
958 Sema &S, ArrayRef<BindingDecl *> Bindings, ValueDecl *Src,
984 static bool checkArrayLikeDecomposition(Sema &S,
999 static bool checkArrayDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings,
1007 static bool checkVectorDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings,
1016 static bool checkComplexDecomposition(Sema &S,
1048 static bool lookupStdTypeTraitMember(Sema &S, LookupResult &TraitMemberLookup,
1070 Loc, Sema::LookupOrdinaryName);
1107 getTrivialIntegralTemplateArgument(Sema &S, SourceLocation Loc, QualType T,
1114 getTrivialTypeTemplateArgument(Sema &S, SourceLocation Loc, QualType T) {
1120 static IsTupleLike isTupleLike(Sema &S, SourceLocation Loc, QualType T,
1123 S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
1126 LookupResult R(S, Value, Loc, Sema::LookupOrdinaryName);
1141 struct ICEDiagnoser : Sema::VerifyICEDiagnoser {
1146 Sema::SemaDiagnosticBuilder diagnoseNotICE(Sema &S,
1167 static QualType getTupleLikeElementType(Sema &S, SourceLocation Loc,
1176 LookupResult R(S, TypeDN, Loc, Sema::LookupOrdinaryName);
1198 Sema &S;
1199 InitializingBinding(Sema &S, BindingDecl *BD) : S(S) {
1200 Sema::CodeSynthesisContext Ctx;
1201 Ctx.Kind = Sema::CodeSynthesisContext::InitializingStructuredBinding;
1212 static bool checkTupleLikeDecomposition(Sema &S,
1232 LookupResult MemberGet(S, GetDN, Src->getLocation(), Sema::LookupMemberName);
1352 static DeclAccessPair findDecomposableBaseClass(Sema &S, SourceLocation Loc,
1423 static bool checkMemberDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings,
1523 void Sema::CheckCompleteDecompositionDeclaration(DecompositionDecl *DD) {
1592 void Sema::MergeVarDeclExceptionSpecs(VarDecl *New, VarDecl *Old) {
1632 void Sema::CheckCXXDefaultArguments(FunctionDecl *FD) {
1677 static bool CheckLiteralType(Sema &SemaRef, Sema::CheckConstexprKind Kind,
1684 case Sema::CheckConstexprKind::Diagnose:
1688 case Sema::CheckConstexprKind::CheckValid:
1696 static bool CheckConstexprDestructorSubobjects(Sema &SemaRef,
1698 Sema::CheckConstexprKind Kind) {
1707 if (Kind == Sema::CheckConstexprKind::Diagnose) {
1729 static bool CheckConstexprParameterTypes(Sema &SemaRef,
1731 Sema::CheckConstexprKind Kind) {
1753 static bool CheckConstexprReturnType(Sema &SemaRef, const FunctionDecl *FD,
1754 Sema::CheckConstexprKind Kind) {
1781 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
1783 Sema::CheckConstexprKind Kind);
1784 static bool CheckConstexprMissingReturn(Sema &SemaRef, const FunctionDecl *Dcl);
1786 bool Sema::CheckConstexprFunctionDefinition(const FunctionDecl *NewFD,
1876 static bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl,
1878 Sema::CheckConstexprKind Kind) {
1904 if (Kind == Sema::CheckConstexprKind::Diagnose) {
1919 if (Kind == Sema::CheckConstexprKind::Diagnose) {
1947 if (Kind == Sema::CheckConstexprKind::Diagnose) {
1971 if (Kind == Sema::CheckConstexprKind::Diagnose) {
1984 if (Kind == Sema::CheckConstexprKind::Diagnose) {
2005 if (Kind == Sema::CheckConstexprKind::Diagnose) {
2029 static bool CheckConstexprCtorInitializer(Sema &SemaRef,
2034 Sema::CheckConstexprKind Kind) {
2036 if (Kind == Sema::CheckConstexprKind::CheckValid &&
2056 if (Kind == Sema::CheckConstexprKind::Diagnose) {
2085 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S,
2089 Sema::CheckConstexprKind Kind) {
2235 if (Kind == Sema::CheckConstexprKind::Diagnose) {
2247 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
2249 Sema::CheckConstexprKind Kind) {
2266 case Sema::CheckConstexprKind::CheckValid:
2271 case Sema::CheckConstexprKind::Diagnose:
2294 if (Kind == Sema::CheckConstexprKind::CheckValid) {
2333 if (Kind == Sema::CheckConstexprKind::Diagnose) {
2385 case Sema::CheckConstexprKind::Diagnose:
2390 case Sema::CheckConstexprKind::CheckValid:
2400 case Sema::CheckConstexprKind::Diagnose:
2411 case Sema::CheckConstexprKind::CheckValid:
2441 if (Kind == Sema::CheckConstexprKind::Diagnose && !SkipCheck &&
2456 static bool CheckConstexprMissingReturn(Sema &SemaRef,
2478 bool Sema::CheckImmediateEscalatingFunctionDefinition(
2498 void Sema::DiagnoseImmediateEscalatingReason(FunctionDecl *FD) {
2506 Sema &SemaRef;
2513 ImmediateEscalatingExpressionsVisitor(Sema &SemaRef, FunctionDecl *FD)
2589 CXXRecordDecl *Sema::getCurrentClass(Scope *, const CXXScopeSpec *SS) {
2603 bool Sema::isCurrentClassName(const IdentifierInfo &II, Scope *S,
2609 bool Sema::isCurrentClassNameTypo(IdentifierInfo *&II, const CXXScopeSpec *SS) {
2632 CXXBaseSpecifier *Sema::CheckBaseSpecifier(CXXRecordDecl *Class,
2751 BaseResult Sema::ActOnBaseSpecifier(Decl *classdecl, SourceRange SpecifierRange,
2830 bool Sema::AttachBaseSpecifiers(CXXRecordDecl *Class,
2935 void Sema::ActOnBaseSpecifiers(Decl *ClassDecl,
2944 bool Sema::IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base) {
2969 bool Sema::IsDerivedFrom(SourceLocation Loc, QualType Derived, QualType Base,
3007 void Sema::BuildBasePathArray(const CXXBasePaths &Paths,
3015 Sema::CheckDerivedToBaseConversion(QualType Derived, QualType Base,
3097 Sema::CheckDerivedToBaseConversion(QualType Derived, QualType Base,
3107 std::string Sema::getAmbiguousPathsDisplayString(CXXBasePaths &Paths) {
3130 bool Sema::ActOnAccessSpecifier(AccessSpecifier Access, SourceLocation ASLoc,
3140 void Sema::CheckOverrideControl(NamedDecl *D) {
3208 void Sema::DiagnoseAbsenceOfOverrideControl(NamedDecl *D, bool Inconsistent) {
3243 bool Sema::CheckIfOverriddenFunctionIsMarkedFinal(const CXXMethodDecl *New,
3266 void Sema::CheckShadowInheritedFields(const SourceLocation &Loc,
3317 Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D,
3626 Sema &S;
3647 UninitializedFieldVisitor(Sema &S,
3963 Sema &SemaRef, const CXXConstructorDecl *Constructor) {
4027 void Sema::ActOnStartCXXInClassMemberInitializer() {
4033 void Sema::ActOnStartTrailingRequiresClause(Scope *S, Declarator &D) {
4047 ExprResult Sema::ActOnFinishTrailingRequiresClause(ExprResult ConstraintExpr) {
4051 ExprResult Sema::ActOnRequiresClause(ExprResult ConstraintExpr) {
4066 ExprResult Sema::ConvertMemberDefaultInitExpression(FieldDecl *FD,
4081 void Sema::ActOnFinishCXXInClassMemberInitializer(Decl *D,
4126 static bool FindBaseInitializer(Sema &SemaRef,
4168 Sema::ActOnMemInitializer(Decl *ConstructorD,
4183 Sema::ActOnMemInitializer(Decl *ConstructorD,
4227 bool Sema::DiagRedefinedPlaceholderFieldDecl(SourceLocation Loc,
4252 Sema::tryLookupUnambiguousFieldDecl(RecordDecl *ClassDecl,
4271 ValueDecl *Sema::tryLookupCtorInitMemberDecl(CXXRecordDecl *ClassDecl,
4281 Sema::BuildMemInitializer(Decl *ConstructorD,
4474 Sema::BuildMemberInitializer(ValueDecl *Member, Expr *Init,
4557 Sema::BuildDelegatingInitializer(TypeSourceInfo *TInfo, Expr *Init,
4620 Sema::BuildBaseInitializer(QualType BaseType, TypeSourceInfo *BaseTInfo,
4760 static Expr *CastForMoving(Sema &SemaRef, Expr *E) {
4783 BuildImplicitBaseInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor,
4866 BuildImplicitMemberInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor,
4898 Sema::LookupMemberName);
5026 Sema &S;
5034 BaseAndFieldInfo(Sema &S, CXXConstructorDecl *Ctor, bool ErrorsInInits)
5130 static bool CollectFieldInitializer(Sema &SemaRef, BaseAndFieldInfo &Info,
5199 Sema::SetDelegatingInitializer(CXXConstructorDecl *Constructor,
5220 bool Sema::SetCtorInitializers(CXXConstructorDecl *Constructor, bool AnyErrors,
5420 static void AddInitializerToDiag(const Sema::SemaDiagnosticBuilder &Diag,
5435 Sema &SemaRef, const CXXConstructorDecl *Constructor,
5525 Sema::SemaDiagnosticBuilder D = SemaRef.Diag(
5564 bool CheckRedundantInit(Sema &S,
5594 bool CheckRedundantUnionInit(Sema &S,
5629 void Sema::ActOnMemInitializers(Decl *ConstructorDecl,
5696 Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location,
5800 void Sema::MarkVirtualBaseDestructorsReferenced(
5840 void Sema::ActOnDefaultCtorInitializers(Decl *CDtorDecl) {
5855 bool Sema::isAbstractType(SourceLocation Loc, QualType T) {
5876 bool Sema::RequireNonAbstractType(SourceLocation Loc, QualType T,
5887 void Sema::DiagnoseAbstractType(const CXXRecordDecl *RD) {
5941 Sema &S;
5946 AbstractUsageInfo(Sema &S, CXXRecordDecl *Record)
5958 void CheckType(const NamedDecl *D, TypeLoc TL, Sema::AbstractDiagSelID Sel);
5968 void Visit(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
5977 void Check(FunctionProtoTypeLoc TL, Sema::AbstractDiagSelID Sel) {
5978 Visit(TL.getReturnLoc(), Sema::AbstractReturnType);
5984 if (TSI) Visit(TSI->getTypeLoc(), Sema::AbstractParamType);
5988 void Check(ArrayTypeLoc TL, Sema::AbstractDiagSelID Sel) {
5989 Visit(TL.getElementLoc(), Sema::AbstractArrayType);
5992 void Check(TemplateSpecializationTypeLoc TL, Sema::AbstractDiagSelID Sel) {
5998 Visit(TSI->getTypeLoc(), Sema::AbstractNone);
6005 void Check(Type TL, Sema::AbstractDiagSelID Sel) { \
6006 Visit(TL.getNextTypeLoc(), Sema::AbstractNone); \
6016 void Check(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
6025 if (Sel == Sema::AbstractNone) return;
6030 Sel = Sema::AbstractArrayType;
6038 if (Sel == Sema::AbstractArrayType) {
6050 Sema::AbstractDiagSelID Sel) {
6068 Info.CheckType(FD, TSI->getTypeLoc(), Sema::AbstractNone);
6080 Sema::AbstractVariableType);
6104 Info.CheckType(FD, TSI->getTypeLoc(), Sema::AbstractFieldType);
6119 static void ReferenceDllExportedMembers(Sema &S, CXXRecordDecl *Class) {
6135 Sema &S;
6136 MarkingClassDllexported(Sema &S, CXXRecordDecl *Class,
6139 Sema::CodeSynthesisContext Ctx;
6140 Ctx.Kind = Sema::CodeSynthesisContext::MarkingClassDllexported;
6214 static void checkForMultipleExportedDefaultConstructors(Sema &S,
6252 static void checkCUDADeviceBuiltinSurfaceClassTemplate(Sema &S,
6255 auto reportIllegalClassTemplate = [&ErrorReported](Sema &S,
6306 static void checkCUDADeviceBuiltinTextureClassTemplate(Sema &S,
6309 auto reportIllegalClassTemplate = [&ErrorReported](Sema &S,
6369 void Sema::checkClassLevelCodeSegAttribute(CXXRecordDecl *Class) {
6379 void Sema::checkClassLevelDLLAttribute(CXXRecordDecl *Class) {
6552 void Sema::propagateDLLAttrToBaseClassTemplate(
6610 Sema::DefaultedFunctionKind
6611 Sema::getDefaultedFunctionKind(const FunctionDecl *FD) {
6664 static void DefineDefaultedFunction(Sema &S, FunctionDecl *FD,
6666 Sema::DefaultedFunctionKind DFK = S.getDefaultedFunctionKind(FD);
6697 static bool canPassInRegisters(Sema &S, CXXRecordDecl *D,
6816 ReportOverrides(Sema &S, unsigned DiagID, const CXXMethodDecl *MD,
6831 void Sema::CheckCompletedCXXClass(Scope *S, CXXRecordDecl *Record) {
7203 static Sema::SpecialMemberOverloadResult
7204 lookupCallFromSpecialMember(Sema &S, CXXRecordDecl *Class,
7227 class Sema::InheritedConstructorInfo {
7228 Sema &S;
7238 InheritedConstructorInfo(Sema &S, SourceLocation UseLoc,
7311 Sema &S, CXXRecordDecl *ClassDecl, CXXSpecialMemberKind CSM, unsigned Quals,
7313 Sema::InheritedConstructorInfo *Inherited = nullptr) {
7317 Sema::SatisfactionStackResetRAII SSRAII{S};
7334 Sema::SpecialMemberOverloadResult SMOR =
7346 Sema &S, CXXRecordDecl *ClassDecl, CXXSpecialMemberKind CSM, bool ConstArg,
7348 Sema::InheritedConstructorInfo *Inherited = nullptr) {
7460 Sema &S;
7462 ComputingExceptionSpec(Sema &S, FunctionDecl *FD, SourceLocation Loc)
7464 Sema::CodeSynthesisContext Ctx;
7465 Ctx.Kind = Sema::CodeSynthesisContext::ExceptionSpecEvaluation;
7476 static Sema::ImplicitExceptionSpecification
7477 ComputeDefaultedSpecialMemberExceptionSpec(Sema &S, SourceLocation Loc,
7480 Sema::InheritedConstructorInfo *ICI);
7482 static Sema::ImplicitExceptionSpecification
7483 ComputeDefaultedComparisonExceptionSpec(Sema &S, SourceLocation Loc,
7485 Sema::DefaultedComparisonKind DCK);
7487 static Sema::ImplicitExceptionSpecification
7488 computeImplicitExceptionSpec(Sema &S, SourceLocation Loc, FunctionDecl *FD) {
7501 Sema::InheritedConstructorInfo ICI(
7507 static FunctionProtoType::ExtProtoInfo getImplicitMethodEPI(Sema &S,
7522 void Sema::EvaluateImplicitExceptionSpec(SourceLocation Loc, FunctionDecl *FD) {
7535 void Sema::CheckExplicitlyDefaultedFunction(Scope *S, FunctionDecl *FD) {
7555 bool Sema::CheckExplicitlyDefaultedSpecialMember(CXXMethodDecl *MD,
7832 using DefaultedComparisonKind = Sema::DefaultedComparisonKind;
7834 DefaultedComparisonVisitor(Sema &S, CXXRecordDecl *RD, FunctionDecl *FD,
7932 Sema &S;
7988 DefaultedComparisonAnalyzer(Sema &S, CXXRecordDecl *RD, FunctionDecl *FD,
8312 DefaultedComparisonSynthesizer(Sema &S, CXXRecordDecl *RD, FunctionDecl *FD,
8319 Sema::CompoundScopeRAII CompoundScope(S);
8386 Sema::ComparisonCategoryUsage::DefaultedOperator);
8487 Sema::ConditionKind::Boolean),
8561 Sema::ConditionKind::Boolean),
8626 Sema::ConditionResult Cond = S.ActOnCondition(
8627 nullptr, Loc, Comp.get(), Sema::ConditionKind::Boolean);
8671 static void lookupOperatorsForDefaultedComparison(Sema &Self, Scope *S,
8695 bool Sema::CheckExplicitlyDefaultedComparison(Scope *S, FunctionDecl *FD,
9026 void Sema::DeclareImplicitEqualityComparison(CXXRecordDecl *RD,
9028 Sema::CodeSynthesisContext Ctx;
9029 Ctx.Kind = Sema::CodeSynthesisContext::DeclaringImplicitEqualityComparison;
9040 void Sema::DefineDefaultedComparison(SourceLocation UseLoc, FunctionDecl *FD,
9078 static Sema::ImplicitExceptionSpecification
9079 ComputeDefaultedComparisonExceptionSpec(Sema &S, SourceLocation Loc,
9081 Sema::DefaultedComparisonKind DCK) {
9083 Sema::ImplicitExceptionSpecification ExceptSpec(S);
9101 Sema::SynthesizedFunctionScope Scope(S, FD);
9103 S, Sema::ExpressionEvaluationContext::Unevaluated);
9125 void Sema::CheckDelayedMemberExceptionSpecs() {
9148 Sema &S;
9151 Sema::InheritedConstructorInfo *ICI;
9156 SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
9157 Sema::InheritedConstructorInfo *ICI)
9191 Sema::SpecialMemberOverloadResult lookupIn(CXXRecordDecl *Class,
9199 Sema::SpecialMemberOverloadResult lookupInheritedCtor(CXXRecordDecl *Class) {
9271 SpecialMemberDeletionInfo(Sema &S, CXXMethodDecl *MD,
9273 Sema::InheritedConstructorInfo *ICI, bool Diagnose)
9295 Sema::SpecialMemberOverloadResult SMOR,
9326 Subobject Subobj, Sema::SpecialMemberOverloadResult SMOR,
9333 if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::NoMemberOrDeleted)
9335 else if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous)
9418 Sema::SpecialMemberOverloadResult SMOR =
9463 Sema::SpecialMemberOverloadResult SMOR = lookupInheritedCtor(BaseClass);
9614 bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD,
9750 void Sema::DiagnoseDeletedDefaultedFunction(FunctionDecl *FD) {
9777 static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
9780 Sema::TrivialABIHandling TAH,
9823 (TAH == Sema::TAH_ConsiderTrivialABI &&
9840 (TAH == Sema::TAH_ConsiderTrivialABI &&
9874 Sema::SpecialMemberOverloadResult SMOR =
9881 if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous)
9886 Sema::SpecialMemberOverloadResult::NoMemberOrDeleted);
9895 if (TAH == Sema::TAH_ConsiderTrivialABI &&
9933 static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
9937 Sema::TrivialABIHandling TAH,
9976 S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI,
9986 static bool checkTrivialClassMembers(Sema &S, CXXRecordDecl *RD,
9988 Sema::TrivialABIHandling TAH,
10036 void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD,
10047 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
10201 Sema *S;
10277 void Sema::FindHiddenVirtualMethods(CXXMethodDecl *MD,
10305 void Sema::NoteHiddenVirtualMethods(CXXMethodDecl *MD,
10316 void Sema::DiagnoseHiddenVirtualMethods(CXXMethodDecl *MD) {
10333 void Sema::checkIllFormedTrivialABIStruct(CXXRecordDecl &RD) {
10407 void Sema::checkIncorrectVTablePointerAuthenticationAttribute(
10440 void Sema::ActOnFinishCXXMemberSpecification(
10503 void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) {
10601 Sema::ActOnReenterTemplateScope(Decl *D,
10667 void Sema::ActOnStartDelayedMemberDeclarations(Scope *S, Decl *RecordD) {
10674 void Sema::ActOnFinishDelayedMemberDeclarations(Scope *S, Decl *RecordD) {
10679 void Sema::ActOnReenterCXXMethodParameter(Scope *S, ParmVarDecl *Param) {
10688 void Sema::ActOnStartDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) {
10696 void Sema::ActOnDelayedCXXMethodParameter(Scope *S, Decl *ParamD) {
10707 void Sema::ActOnFinishDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) {
10729 static void checkMethodTypeQualifiers(Sema &S, Declarator &D, unsigned DiagID) {
10748 QualType Sema::CheckConstructorDeclarator(Declarator &D, QualType R,
10808 void Sema::CheckConstructor(CXXConstructorDecl *Constructor) {
10840 bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) {
10889 QualType Sema::CheckDestructorDeclarator(Declarator &D, QualType R,
11005 void Sema::CheckConversionDeclarator(Declarator &D, QualType &R,
11178 Decl *Sema::ActOnConversionDeclarator(CXXConversionDecl *Conversion) {
11231 void Sema::CheckExplicitObjectMemberFunction(DeclContext *DC, Declarator &D,
11236 void Sema::CheckExplicitObjectLambda(Declarator &D) {
11240 void Sema::CheckExplicitObjectMemberFunction(Declarator &D,
11349 BadSpecifierDiagnoser(Sema &S, SourceLocation Loc, unsigned DiagID)
11369 Sema &S;
11370 Sema::SemaDiagnosticBuilder Diagnostic;
11375 bool Sema::CheckDeductionGuideDeclarator(Declarator &D, QualType &R,
11499 static void DiagnoseNamespaceInlineMismatch(Sema &S, SourceLocation KeywordLoc,
11524 Decl *Sema::ActOnStartNamespaceDef(Scope *NamespcScope,
11698 void Sema::ActOnFinishNamespaceDef(Decl *Dcl, SourceLocation RBrace) {
11710 CXXRecordDecl *Sema::getStdBadAlloc() const {
11715 EnumDecl *Sema::getStdAlignValT() const {
11719 NamespaceDecl *Sema::getStdNamespace() const {
11733 Sema &S;
11756 QualType Sema::CheckComparisonCategoryType(ComparisonCategoryType Kind,
11861 NamespaceDecl *Sema::getOrCreateStdNamespace() {
11879 bool Sema::isStdInitializerList(QualType Ty, QualType *Element) {
11945 static ClassTemplateDecl *LookupStdInitializerList(Sema &S, SourceLocation Loc){
11953 Loc, Sema::LookupOrdinaryName);
11979 QualType Sema::BuildStdInitializerList(QualType Element, SourceLocation Loc) {
11996 bool Sema::isInitListConstructor(const FunctionDecl *Ctor) {
12044 Sema &S) {
12052 << (int)Sema::MissingImportKind::Declaration << Corrected.getFoundDecl()
12057 << (int)Sema::MissingImportKind::Declaration << Corrected.getFoundDecl()
12061 static bool TryNamespaceTypoCorrection(Sema &S, LookupResult &R, Scope *Sc,
12069 Sema::CTK_ErrorRecovery)) {
12098 Decl *Sema::ActOnUsingDirective(Scope *S, SourceLocation UsingLoc,
12181 void Sema::PushUsingDirective(Scope *S, UsingDirectiveDecl *UDir) {
12194 Decl *Sema::ActOnUsingDeclaration(Scope *S, AccessSpecifier AS,
12278 Decl *Sema::ActOnUsingEnumDeclaration(Scope *S, AccessSpecifier AS,
12344 bool Sema::CheckUsingShadowDecl(BaseUsingDecl *BUD, NamedDecl *Orig,
12526 UsingShadowDecl *Sema::BuildUsingShadowDecl(Scope *S, BaseUsingDecl *BUD,
12569 void Sema::HideUsingShadowDecl(Scope *S, UsingShadowDecl *Shadow) {
12690 void Sema::FilterUsingLookup(Scope *S, LookupResult &Previous) {
12708 NamedDecl *Sema::BuildUsingDeclaration(
12965 NamedDecl *Sema::BuildUsingEnumDeclaration(Scope *S, AccessSpecifier AS,
13021 NamedDecl *Sema::BuildUsingPackDecl(NamedDecl *InstantiatedFrom,
13034 bool Sema::CheckInheritingConstructorUsingDecl(UsingDecl *UD) {
13061 bool Sema::CheckUsingDeclRedeclaration(SourceLocation UsingLoc,
13136 bool Sema::CheckUsingDeclQualifier(SourceLocation UsingLoc, bool HasTypename,
13365 Decl *Sema::ActOnAliasDeclaration(Scope *S, AccessSpecifier AS,
13520 Decl *Sema::ActOnNamespaceAliasDef(Scope *S, SourceLocation NamespaceLoc,
13601 Sema::ImplicitExceptionSpecification ExceptSpec;
13603 SpecialMemberExceptionSpecInfo(Sema &S, CXXMethodDecl *MD,
13605 Sema::InheritedConstructorInfo *ICI,
13616 Sema::SpecialMemberOverloadResult SMOR);
13626 Sema::SpecialMemberOverloadResult SMOR = lookupInheritedCtor(BaseClass);
13666 Subobject Subobj, Sema::SpecialMemberOverloadResult SMOR) {
13673 bool Sema::tryResolveExplicitSpecifier(ExplicitSpecifier &ExplicitSpec) {
13688 ExplicitSpecifier Sema::ActOnExplicitBoolSpecifier(Expr *ExplicitExpr) {
13695 static Sema::ImplicitExceptionSpecification
13697 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
13698 Sema::InheritedConstructorInfo *ICI) {
13742 Sema &S;
13743 Sema::SpecialMemberDecl D;
13744 Sema::ContextRAII SavedContext;
13747 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, CXXSpecialMemberKind CSM)
13757 Sema::CodeSynthesisContext Ctx;
13758 Ctx.Kind = Sema::CodeSynthesisContext::DeclaringSpecialMember;
13785 void Sema::CheckImplicitSpecialMemberDeclaration(Scope *S, FunctionDecl *FD) {
13801 void Sema::setupImplicitSpecialMemberType(CXXMethodDecl *SpecialMem,
13826 CXXConstructorDecl *Sema::DeclareImplicitDefaultConstructor(
13891 void Sema::DefineImplicitDefaultConstructor(SourceLocation CurrentLocation,
13935 void Sema::ActOnFinishDelayedMemberInitializers(Decl *D) {
13943 Sema::findInheritingConstructor(SourceLocation Loc,
14027 void Sema::NoteDeletedInheritingConstructor(CXXConstructorDecl *Ctor) {
14035 void Sema::DefineInheritingConstructor(SourceLocation CurrentLocation,
14116 CXXDestructorDecl *Sema::DeclareImplicitDestructor(CXXRecordDecl *ClassDecl) {
14183 void Sema::DefineImplicitDestructor(SourceLocation CurrentLocation,
14225 void Sema::CheckCompleteDestructorVariant(SourceLocation CurrentLocation,
14244 void Sema::ActOnFinishCXXMemberDecls() {
14256 void Sema::ActOnFinishCXXNonNestedClass() {
14275 void Sema::referenceDLLExportedClassMethods() {
14286 void Sema::AdjustDestructorExceptionSpec(CXXDestructorDecl *Destructor) {
14335 virtual Expr *build(Sema &S, SourceLocation Loc) const = 0;
14343 Expr *build(Sema &S, SourceLocation Loc) const override {
14353 Expr *build(Sema &S, SourceLocation Loc) const override {
14365 Expr *build(Sema &S, SourceLocation Loc) const override {
14380 Expr *build(Sema &S, SourceLocation Loc) const override {
14396 Expr *build(Sema &S, SourceLocation Loc) const override {
14412 Expr *build(Sema &S, SourceLocation Loc) const override {
14423 Expr *build(Sema &S, SourceLocation Loc) const override {
14436 Expr *build(Sema &S, SourceLocation Loc) const override {
14452 buildMemcpyForAssignmentOp(Sema &S, SourceLocation Loc, QualType T,
14481 Sema::LookupOrdinaryName);
14511 /// \param S The Sema object used for type-checking.
14532 buildSingleCopyAssignRecursively(Sema &S, SourceLocation Loc, QualType T,
14556 LookupResult OpLookup(S, Name, Loc, Sema::LookupOrdinaryName);
14719 S.ActOnCondition(nullptr, Loc, Comparison, Sema::ConditionKind::Boolean),
14724 buildSingleCopyAssign(Sema &S, SourceLocation Loc, QualType T,
14744 CXXMethodDecl *Sema::DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl) {
14832 static void diagnoseDeprecatedCopyOperation(Sema &S, CXXMethodDecl *CopyOp) {
14879 void Sema::DefineImplicitCopyAssignment(SourceLocation CurrentLocation,
15101 CXXMethodDecl *Sema::DeclareImplicitMoveAssignment(CXXRecordDecl *ClassDecl) {
15184 static void checkMoveAssignmentForRepeatedMove(Sema &S, CXXRecordDecl *Class,
15217 Sema::SpecialMemberOverloadResult SMOR =
15264 void Sema::DefineImplicitMoveAssignment(SourceLocation CurrentLocation,
15491 CXXConstructorDecl *Sema::DeclareImplicitCopyConstructor(
15593 void Sema::DefineImplicitCopyConstructor(SourceLocation CurrentLocation,
15630 Sema::CompoundScopeRAII CompoundScope(*this);
15642 CXXConstructorDecl *Sema::DeclareImplicitMoveConstructor(
15732 void Sema::DefineImplicitMoveConstructor(SourceLocation CurrentLocation,
15762 Sema::CompoundScopeRAII CompoundScope(*this);
15774 bool Sema::isImplicitlyDeleted(FunctionDecl *FD) {
15778 void Sema::DefineImplicitLambdaToFunctionPointerConversion(
15847 void Sema::DefineImplicitLambdaToBlockPointerConversion(
15916 ExprResult Sema::BuildCXXConstructExpr(
15958 ExprResult Sema::BuildCXXConstructExpr(
15981 ExprResult Sema::BuildCXXConstructExpr(
16004 void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) {
16067 bool Sema::CompleteConstructorCall(CXXConstructorDecl *Constructor,
16073 // FIXME: This duplicates a lot of code from Sema::ConvertArgumentsForCall.
16104 CheckOperatorNewDeleteDeclarationScope(Sema &SemaRef,
16123 static CanQualType RemoveAddressSpaceFromPtr(Sema &SemaRef,
16133 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl,
16204 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) {
16235 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) {
16276 bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) {
16446 checkLiteralOperatorTemplateParameterList(Sema &SemaRef,
16500 bool Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) {
16670 Decl *Sema::ActOnStartLinkageSpecification(Scope *S, SourceLocation ExternLoc,
16713 Decl *Sema::ActOnFinishLinkageSpecification(Scope *S,
16733 Decl *Sema::ActOnEmptyDeclaration(Scope *S,
16745 VarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo,
16879 Decl *Sema::ActOnExceptionDeclarator(Scope *S, Declarator &D) {
16930 Decl *Sema::ActOnStaticAssertDeclaration(SourceLocation StaticAssertLoc,
17122 void Sema::DiagnoseStaticAssertDetails(const Expr *E) {
17161 bool Sema::EvaluateStaticAssertMessageAsString(Expr *Message,
17186 LookupResult MemberLookup(*this, DN, Loc, Sema::LookupMemberName);
17276 Decl *Sema::BuildStaticAssertDeclaration(SourceLocation StaticAssertLoc,
17387 DeclResult Sema::ActOnTemplatedFriendTag(
17503 Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
17607 NamedDecl *Sema::ActOnFriendFunctionDecl(Scope *S, Declarator &D,
17920 void Sema::SetDeclDeleted(Decl *Dcl, SourceLocation DelLoc,
17973 void Sema::SetDeclDefaulted(Decl *Dcl, SourceLocation DefaultLoc) {
18064 static void SearchForReturnInStmt(Sema &Self, Stmt *S) {
18076 void Sema::DiagnoseReturnInConstructorExceptionHandler(CXXTryStmt *TryBlock) {
18083 void Sema::SetFunctionBodyKind(Decl *D, SourceLocation Loc, FnBodyKind BodyKind,
18098 bool Sema::CheckOverridingFunctionAttributes(CXXMethodDecl *New,
18180 // Sema::CheckFunctionDeclaration) is more clear.
18191 bool Sema::CheckExplicitObjectOverride(CXXMethodDecl *New,
18205 bool Sema::CheckOverridingFunctionReturnType(const CXXMethodDecl *New,
18311 bool Sema::CheckPureMethod(CXXMethodDecl *Method, SourceRange InitRange) {
18327 void Sema::ActOnPureSpecifier(Decl *D, SourceLocation ZeroLoc) {
18343 void Sema::ActOnCXXEnterDeclInitializer(Scope *S, Decl *D) {
18357 void Sema::ActOnCXXExitDeclInitializer(Scope *S, Decl *D) {
18389 DeclResult Sema::ActOnCXXConditionDeclaration(Scope *S, Declarator &D) {
18413 void Sema::LoadExternalVTableUses() {
18437 void Sema::MarkVTableUsed(SourceLocation Loc, CXXRecordDecl *Class,
18499 bool Sema::DefineUsedVTables() {
18593 void Sema::MarkVirtualMemberExceptionSpecsNeeded(SourceLocation Loc,
18600 void Sema::MarkVirtualMembersReferenced(SourceLocation Loc,
18641 Sema &S) {
18701 void Sema::CheckDelegatingCtorCycles() {
18717 Sema &S;
18720 explicit FindCXXThisExpr(Sema &S) : S(S) { }
18730 bool Sema::checkThisInStaticMemberFunctionType(CXXMethodDecl *Method) {
18767 bool Sema::checkThisInStaticMemberFunctionExceptionSpec(CXXMethodDecl *Method) {
18809 bool Sema::checkThisInStaticMemberFunctionAttributes(CXXMethodDecl *Method) {
18856 void Sema::checkExceptionSpecification(
18905 void Sema::actOnDelayedExceptionSpecification(
18944 MSPropertyDecl *Sema::HandleMSProperty(Scope *S, RecordDecl *Record,
19036 void Sema::ActOnStartFunctionDeclarationDeclarator(
19069 void Sema::ActOnFinishFunctionDeclarationDeclarator(Declarator &Declarator) {