Home | History | Annotate | Download | only in Sema

Lines Matching full:sema

14 #include "clang/Sema/SemaInternal.h"
32 #include "clang/Sema/CXXFieldCollector.h"
33 #include "clang/Sema/DeclSpec.h"
34 #include "clang/Sema/Initialization.h"
35 #include "clang/Sema/Lookup.h"
36 #include "clang/Sema/ParsedTemplate.h"
37 #include "clang/Sema/Scope.h"
38 #include "clang/Sema/ScopeInfo.h"
59 Sema *S;
62 CheckDefaultArgumentVisitor(Expr *defarg, Sema *s)
150 Sema::ImplicitExceptionSpecification::CalledDecl(SourceLocation CallLoc,
219 void Sema::ImplicitExceptionSpecification::CalledExpr(Expr *E) {
249 Sema::SetParamDefaultArgument(ParmVarDecl *Param, Expr *Arg,
298 Sema::ActOnParamDefaultArgument(Decl *param, SourceLocation EqualLoc,
334 void Sema::ActOnParamUnparsedDefaultArgument(Decl *param,
347 void Sema::ActOnParamDefaultArgumentError(Decl *param) {
361 void Sema::CheckExtraCXXDefaultArguments(Declarator &D) {
417 bool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old,
626 void Sema::MergeVarDeclExceptionSpecs(VarDecl *New, VarDecl *Old) {
666 void Sema::CheckCXXDefaultArguments(FunctionDecl *FD) {
718 static bool CheckConstexprParameterTypes(Sema &SemaRef,
757 bool Sema::CheckConstexprFunctionDecl(const FunctionDecl *NewFD) {
816 static bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl,
929 static void CheckConstexprCtorInitializer(Sema &SemaRef,
968 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S,
1086 bool Sema::CheckConstexprFunctionBody(const FunctionDecl *Dcl, Stmt *Body) {
1225 bool Sema::isCurrentClassName(const IdentifierInfo &II, Scope *,
1244 bool Sema::isCurrentClassNameTypo(IdentifierInfo *&II, const CXXScopeSpec *SS) {
1302 Sema &S, CXXRecordDecl *Class, Attr *ClassAttr,
1355 Sema::CheckBaseSpecifier(CXXRecordDecl *Class,
1483 Sema::ActOnBaseSpecifier(Decl *classdecl, SourceRange SpecifierRange,
1535 bool Sema::AttachBaseSpecifiers(CXXRecordDecl *Class, CXXBaseSpecifier **Bases,
1605 void Sema::ActOnBaseSpecifiers(Decl *ClassDecl, CXXBaseSpecifier **Bases,
1616 bool Sema::IsDerivedFrom(QualType Derived, QualType Base) {
1639 bool Sema::IsDerivedFrom(QualType Derived, QualType Base, CXXBasePaths &Paths) {
1654 void Sema::BuildBasePathArray(const CXXBasePaths &Paths,
1679 bool Sema::BasePathInvolvesVirtualBase(const CXXCastPath &BasePath) {
1698 Sema::CheckDerivedToBaseConversion(QualType Derived, QualType Base,
1761 Sema::CheckDerivedToBaseConversion(QualType Derived, QualType Base,
1786 std::string Sema::getAmbiguousPathsDisplayString(CXXBasePaths &Paths) {
1810 bool Sema::ActOnAccessSpecifier(AccessSpecifier Access,
1822 void Sema::CheckOverrideControl(NamedDecl *D) {
1894 bool Sema::CheckIfOverriddenFunctionIsMarkedFinal(const CXXMethodDecl *New,
1930 Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D,
2202 Sema &S;
2210 UninitializedFieldVisitor(Sema &S,
2344 Sema &S, Expr *E, llvm::SmallPtrSet<ValueDecl*, 4> &Decls,
2370 Sema &SemaRef, const CXXConstructorDecl *Constructor) {
2409 void Sema::ActOnStartCXXInClassMemberInitializer() {
2418 void Sema::ActOnFinishCXXInClassMemberInitializer(Decl *D,
2471 static bool FindBaseInitializer(Sema &SemaRef,
2513 Sema::ActOnMemInitializer(Decl *ConstructorD,
2529 Sema::ActOnMemInitializer(Decl *ConstructorD,
2572 Sema::BuildMemInitializer(Decl *ConstructorD,
2728 static void CheckForDanglingReferenceOrPointer(Sema &S, ValueDecl *Member,
2774 Sema::BuildMemberInitializer(ValueDecl *Member, Expr *Init,
2850 Sema::BuildDelegatingInitializer(TypeSourceInfo *TInfo, Expr *Init,
2906 Sema::BuildBaseInitializer(QualType BaseType, TypeSourceInfo *BaseTInfo,
3037 static Expr *CastForMoving(Sema &SemaRef, Expr *E, QualType T = QualType()) {
3060 BuildImplicitBaseInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor,
3170 BuildImplicitMemberInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor,
3202 Sema::LookupMemberName);
3397 Sema &S;
3405 BaseAndFieldInfo(Sema &S, CXXConstructorDecl *Ctor, bool ErrorsInInits)
3501 static bool CollectFieldInitializer(Sema &SemaRef, BaseAndFieldInfo &Info,
3566 Sema::SetDelegatingInitializer(CXXConstructorDecl *Constructor,
3585 bool Sema::SetCtorInitializers(CXXConstructorDecl *Constructor, bool AnyErrors,
3786 Sema &SemaRef, const CXXConstructorDecl *Constructor,
3849 Sema::SemaDiagnosticBuilder D =
3877 bool CheckRedundantInit(Sema &S,
3907 bool CheckRedundantUnionInit(Sema &S,
3943 void Sema::ActOnMemInitializers(Decl *ConstructorDecl,
4010 Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location,
4124 void Sema::ActOnDefaultCtorInitializers(Decl *CDtorDecl) {
4135 bool Sema::RequireNonAbstractType(SourceLocation Loc, QualType T,
4145 void diagnose(Sema &S, SourceLocation Loc, QualType T) override {
4157 bool Sema::RequireNonAbstractType(SourceLocation Loc, QualType T,
4196 void Sema::DiagnoseAbstractType(const CXXRecordDecl *RD) {
4250 Sema &S;
4255 AbstractUsageInfo(Sema &S, CXXRecordDecl *Record)
4267 void CheckType(const NamedDecl *D, TypeLoc TL, Sema::AbstractDiagSelID Sel);
4277 void Visit(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
4286 void Check(FunctionProtoTypeLoc TL, Sema::AbstractDiagSelID Sel) {
4287 Visit(TL.getReturnLoc(), Sema::AbstractReturnType);
4293 if (TSI) Visit(TSI->getTypeLoc(), Sema::AbstractParamType);
4297 void Check(ArrayTypeLoc TL, Sema::AbstractDiagSelID Sel) {
4298 Visit(TL.getElementLoc(), Sema::AbstractArrayType);
4301 void Check(TemplateSpecializationTypeLoc TL, Sema::AbstractDiagSelID Sel) {
4307 Visit(TSI->getTypeLoc(), Sema::AbstractNone);
4314 void Check(Type TL, Sema::AbstractDiagSelID Sel) { \
4315 Visit(TL.getNextTypeLoc(), Sema::AbstractNone); \
4325 void Check(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
4334 if (Sel == Sema::AbstractNone) return;
4339 Sel = Sema::AbstractArrayType;
4346 if (Sel == Sema::AbstractArrayType) {
4358 Sema::AbstractDiagSelID Sel) {
4376 Info.CheckType(MD, TSI->getTypeLoc(), Sema::AbstractNone);
4396 Info.CheckType(FD, TSI->getTypeLoc(), Sema::AbstractFieldType);
4400 Info.CheckType(VD, TSI->getTypeLoc(), Sema::AbstractVariableType);
4413 static void checkDLLAttribute(Sema &S, CXXRecordDecl *Class) {
4486 void Sema::CheckCompletedCXXClass(CXXRecordDecl *Record) {
4660 static Sema::SpecialMemberOverloadResult *lookupCallFromSpecialMember(
4661 Sema &S, CXXRecordDecl *Class, Sema::CXXSpecialMember CSM,
4664 if (CSM == Sema::CXXCopyAssignment || CSM == Sema::CXXMoveAssignment)
4668 if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor)
4683 static bool specialMemberIsConstexpr(Sema &S, CXXRecordDecl *ClassDecl,
4684 Sema::CXXSpecialMember CSM,
4686 Sema::SpecialMemberOverloadResult *SMOR =
4697 static bool defaultedSpecialMemberIsConstexpr(Sema &S, CXXRecordDecl *ClassDecl,
4698 Sema::CXXSpecialMember CSM,
4707 case Sema::CXXDefaultConstructor:
4716 case Sema::CXXCopyConstructor:
4717 case Sema::CXXMoveConstructor:
4721 case Sema::CXXCopyAssignment:
4722 case Sema::CXXMoveAssignment:
4729 case Sema::CXXDestructor:
4730 case Sema::CXXInvalid:
4790 static Sema::ImplicitExceptionSpecification
4791 computeImplicitExceptionSpec(Sema &S, SourceLocation Loc, CXXMethodDecl *MD) {
4793 case Sema::CXXDefaultConstructor:
4795 case Sema::CXXCopyConstructor:
4797 case Sema::CXXCopyAssignment:
4799 case Sema::CXXMoveConstructor:
4801 case Sema::CXXMoveAssignment:
4803 case Sema::CXXDestructor:
4805 case Sema::CXXInvalid:
4813 static FunctionProtoType::ExtProtoInfo getImplicitMethodEPI(Sema &S,
4828 void Sema::EvaluateImplicitExceptionSpec(SourceLocation Loc, CXXMethodDecl *MD) {
4852 void Sema::CheckExplicitlyDefaultedSpecialMember(CXXMethodDecl *MD) {
5024 void Sema::CheckExplicitlyDefaultedMemberExceptionSpec(
5042 void Sema::CheckDelayedMemberExceptionSpecs() {
5068 Sema &S;
5070 Sema::CXXSpecialMember CSM;
5079 SpecialMemberDeletionInfo(Sema &S, CXXMethodDecl *MD,
5080 Sema::CXXSpecialMember CSM, bool Diagnose)
5086 case Sema::CXXDefaultConstructor:
5087 case Sema::CXXCopyConstructor:
5090 case Sema::CXXMoveConstructor:
5094 case Sema::CXXCopyAssignment:
5097 case Sema::CXXMoveAssignment:
5101 case Sema::CXXDestructor:
5103 case Sema::CXXInvalid:
5117 Sema::SpecialMemberOverloadResult *lookupIn(CXXRecordDecl *Class,
5132 Sema::SpecialMemberOverloadResult *SMOR,
5162 Subobject Subobj, Sema::SpecialMemberOverloadResult *SMOR,
5169 if (SMOR->getKind() == Sema::SpecialMemberOverloadResult::NoMemberOrDeleted)
5171 else if (SMOR->getKind() == Sema::SpecialMemberOverloadResult::Ambiguous)
5231 if (!(CSM == Sema::CXXDefaultConstructor &&
5241 Sema::SpecialMemberOverloadResult *SMOR =
5242 S.LookupSpecialMember(Class, Sema::CXXDestructor,
5264 if (CSM == Sema::CXXDefaultConstructor) {
5288 } else if (CSM == Sema::CXXCopyConstructor) {
5336 if (CSM == Sema::CXXDefaultConstructor && AllVariantFieldsAreConst &&
5364 if (CSM == Sema::CXXDefaultConstructor && inUnion() && AllFieldsAreConst &&
5378 bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM,
5502 static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
5503 Sema::CXXSpecialMember CSM, unsigned Quals,
5509 case Sema::CXXInvalid:
5512 case Sema::CXXDefaultConstructor:
5541 case Sema::CXXDestructor:
5556 case Sema::CXXCopyConstructor:
5575 case Sema::CXXCopyAssignment:
5590 case Sema::CXXMoveConstructor:
5591 case Sema::CXXMoveAssignment:
5593 Sema::SpecialMemberOverloadResult *SMOR =
5600 if (SMOR->getKind() == Sema::SpecialMemberOverloadResult::Ambiguous)
5605 Sema::SpecialMemberOverloadResult::NoMemberOrDeleted);
5647 static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
5649 Sema::CXXSpecialMember CSM,
5665 if (!Selected && CSM == Sema::CXXDefaultConstructor) {
5697 static bool checkTrivialClassMembers(Sema &S, CXXRecordDecl *RD,
5698 Sema::CXXSpecialMember CSM,
5718 if (CSM == Sema::CXXDefaultConstructor && FI->hasInClassInitializer()) {
5747 void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD, CXXSpecialMember CSM) {
5758 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMember CSM,
5898 Sema *S;
5973 void Sema::FindHiddenVirtualMethods(CXXMethodDecl *MD,
6001 void Sema::NoteHiddenVirtualMethods(CXXMethodDecl *MD,
6014 void Sema::DiagnoseHiddenVirtualMethods(CXXMethodDecl *MD) {
6031 void Sema::ActOnFinishCXXMemberSpecification(Scope* S, SourceLocation RLoc,
6063 void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) {
6118 unsigned Sema::ActOnReenterTemplateScope(Scope *S, Decl *D) {
6169 void Sema::ActOnStartDelayedMemberDeclarations(Scope *S, Decl *RecordD) {
6176 void Sema::ActOnFinishDelayedMemberDeclarations(Scope *S, Decl *RecordD) {
6184 void Sema::ActOnReenterCXXMethodParameter(Scope *S, ParmVarDecl *Param) {
6201 void Sema::ActOnStartDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) {
6209 void Sema::ActOnDelayedCXXMethodParameter(Scope *S, Decl *ParamD) {
6231 void Sema::ActOnFinishDelayedCXXMethodDeclaration(Scope *S, Decl *MethodD) {
6257 QualType Sema::CheckConstructorDeclarator(Declarator &D, QualType R,
6331 void Sema::CheckConstructor(CXXConstructorDecl *Constructor) {
6368 bool Sema::CheckDestructor(CXXDestructorDecl *Destructor) {
6404 Sema::CheckDestructorDeclarator(Declarator &D, QualType R,
6521 void Sema::CheckConversionDeclarator(Declarator &D, QualType &R,
6608 Decl *Sema::ActOnConversionDeclarator(CXXConversionDecl *Conversion) {
6657 static void DiagnoseNamespaceInlineMismatch(Sema &S, SourceLocation KeywordLoc,
6697 Decl *Sema::ActOnStartNamespaceDef(Scope *NamespcScope,
6861 void Sema::ActOnFinishNamespaceDef(Decl *Dcl, SourceLocation RBrace) {
6870 CXXRecordDecl *Sema::getStdBadAlloc() const {
6875 NamespaceDecl *Sema::getStdNamespace() const {
6882 NamespaceDecl *Sema::getOrCreateStdNamespace() {
6897 bool Sema::isStdInitializerList(QualType Ty, QualType *Element) {
6957 static ClassTemplateDecl *LookupStdInitializerList(Sema &S, SourceLocation Loc){
6965 Loc, Sema::LookupOrdinaryName);
6991 QualType Sema::BuildStdInitializerList(QualType Element, SourceLocation Loc) {
7006 bool Sema::isInitListConstructor(const CXXConstructorDecl* Ctor) {
7050 static bool TryNamespaceTypoCorrection(Sema &S, LookupResult &R, Scope *Sc,
7059 Sema::CTK_ErrorRecovery)) {
7079 Decl *Sema::ActOnUsingDirective(Scope *S,
7161 void Sema::PushUsingDirective(Scope *S, UsingDirectiveDecl *UDir) {
7175 Decl *Sema::ActOnUsingDeclaration(Scope *S,
7264 bool Sema::CheckUsingShadowDecl(UsingDecl *Using, NamedDecl *Orig,
7393 UsingShadowDecl *Sema::BuildUsingShadowDecl(Scope *S,
7452 void Sema::HideUsingShadowDecl(Scope *S, UsingShadowDecl *Shadow) {
7566 NamedDecl *Sema::BuildUsingDeclaration(Scope *S, AccessSpecifier AS,
7772 bool Sema::CheckInheritingConstructorUsingDecl(UsingDecl *UD) {
7802 bool Sema::CheckUsingDeclRedeclaration(SourceLocation UsingLoc,
7860 bool Sema::CheckUsingDeclQualifier(SourceLocation UsingLoc,
8041 Decl *Sema::ActOnAliasDeclaration(Scope *S,
8185 Decl *Sema::ActOnNamespaceAliasDef(Scope *S,
8241 Sema::ImplicitExceptionSpecification
8242 Sema::ComputeDefaultedDefaultCtorExceptionSpec(SourceLocation Loc,
8318 Sema::ImplicitExceptionSpecification
8319 Sema::ComputeInheritingCtorExceptionSpec(CXXConstructorDecl *CD) {
8386 Sema &S;
8387 Sema::SpecialMemberDecl D;
8390 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM)
8413 CXXConstructorDecl *Sema::DeclareImplicitDefaultConstructor(
8468 void Sema::DefineImplicitDefaultConstructor(SourceLocation CurrentLocation,
8503 void Sema::ActOnFinishDelayedMemberInitializers(Decl *D) {
8512 InheritingConstructorInfo(Sema &SemaRef, CXXRecordDecl *Derived)
8551 InheritingConstructor &getEntry(Sema &S, const CXXConstructorDecl *Ctor) {
8779 Sema &SemaRef;
8786 void Sema::DeclareInheritingConstructors(CXXRecordDecl *ClassDecl) {
8808 void Sema::DefineInheritingConstructor(SourceLocation CurrentLocation,
8837 Sema::ImplicitExceptionSpecification
8838 Sema::ComputeDefaultedDtorExceptionSpec(CXXMethodDecl *MD) {
8876 CXXDestructorDecl *Sema::DeclareImplicitDestructor(CXXRecordDecl *ClassDecl) {
8926 void Sema::DefineImplicitDestructor(SourceLocation CurrentLocation,
8966 void Sema::ActOnFinishCXXMemberDecls() {
8977 void Sema::AdjustDestructorExceptionSpec(CXXRecordDecl *ClassDecl,
9024 virtual Expr *build(Sema &S, SourceLocation Loc) const = 0;
9032 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9042 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9054 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9069 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9085 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9101 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9112 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9125 virtual Expr *build(Sema &S, SourceLocation Loc) const override {
9141 buildMemcpyForAssignmentOp(Sema &S, SourceLocation Loc, QualType T,
9169 Sema::LookupOrdinaryName);
9199 /// \param S The Sema object used for type-checking.
9220 buildSingleCopyAssignRecursively(Sema &S, SourceLocation Loc, QualType T,
9244 LookupResult OpLookup(S, Name, Loc, Sema::LookupOrdinaryName);
9410 buildSingleCopyAssign(Sema &S, SourceLocation Loc, QualType T,
9430 Sema::ImplicitExceptionSpecification
9431 Sema::ComputeDefaultedCopyAssignmentExceptionSpec(CXXMethodDecl *MD) {
9486 CXXMethodDecl *Sema::DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl) {
9557 static void diagnoseDeprecatedCopyOperation(Sema &S, CXXMethodDecl *CopyOp,
9598 << (isa<CXXConstructorDecl>(CopyOp) ? Sema::CXXCopyConstructor
9599 : Sema::CXXCopyAssignment)
9604 void Sema::DefineImplicitCopyAssignment(SourceLocation CurrentLocation,
9814 Sema::ImplicitExceptionSpecification
9815 Sema::ComputeDefaultedMoveAssignmentExceptionSpec(CXXMethodDecl *MD) {
9867 CXXMethodDecl *Sema::DeclareImplicitMoveAssignment(CXXRecordDecl *ClassDecl) {
9936 static void checkMoveAssignmentForRepeatedMove(Sema &S, CXXRecordDecl *Class,
9969 Sema::SpecialMemberOverloadResult *SMOR =
9970 S.LookupSpecialMember(Base, Sema::CXXMoveAssignment,
10017 void Sema::DefineImplicitMoveAssignment(SourceLocation CurrentLocation,
10236 Sema::ImplicitExceptionSpecification
10237 Sema::ComputeDefaultedCopyCtorExceptionSpec(CXXMethodDecl *MD) {
10282 CXXConstructorDecl *Sema::DeclareImplicitCopyConstructor(
10351 void Sema::DefineImplicitCopyConstructor(SourceLocation CurrentLocation,
10381 Sema::CompoundScopeRAII CompoundScope(*this);
10392 Sema::ImplicitExceptionSpecification
10393 Sema::ComputeDefaultedMoveCtorExceptionSpec(CXXMethodDecl *MD) {
10451 CXXConstructorDecl *Sema::DeclareImplicitMoveConstructor(
10516 void Sema::DefineImplicitMoveConstructor(SourceLocation CurrentLocation,
10539 Sema::CompoundScopeRAII CompoundScope(*this);
10551 bool Sema::isImplicitlyDeleted(FunctionDecl *FD) {
10555 void Sema::DefineImplicitLambdaToFunctionPointerConversion(
10632 void Sema::DefineImplicitLambdaToBlockPointerConversion(
10707 Sema::BuildCXXConstructExpr(SourceLocation ConstructLoc, QualType DeclInitType,
10742 Sema::BuildCXXConstructExpr(SourceLocation ConstructLoc, QualType DeclInitType,
10758 void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) {
10792 Sema::CompleteConstructorCall(CXXConstructorDecl *Constructor,
10798 // FIXME: This duplicates a lot of code from Sema::ConvertArgumentsForCall.
10835 CheckOperatorNewDeleteDeclarationScope(Sema &SemaRef,
10855 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl,
10903 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) {
10934 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) {
10957 bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) {
11094 bool Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) {
11243 Decl *Sema::ActOnStartLinkageSpecification(Scope *S, SourceLocation ExternLoc,
11279 Decl *Sema::ActOnFinishLinkageSpecification(Scope *S,
11290 Decl *Sema::ActOnEmptyDeclaration(Scope *S,
11306 VarDecl *Sema::BuildExceptionDeclaration(Scope *S,
11427 Decl *Sema::ActOnExceptionDeclarator(Scope *S, Declarator &D) {
11480 Decl *Sema::ActOnStaticAssertDeclaration(SourceLocation StaticAssertLoc,
11494 Decl *Sema::BuildStaticAssertDeclaration(SourceLocation StaticAssertLoc,
11536 FriendDecl *Sema::CheckFriendTypeDecl(SourceLocation LocStart,
11608 Decl *Sema::ActOnTemplatedFriendTag(Scope *S, SourceLocation FriendLoc,
11744 Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
11813 NamedDecl *Sema::ActOnFriendFunctionDecl(Scope *S, Declarator &D,
12119 void Sema::SetDeclDeleted(Decl *Dcl, SourceLocation DelLoc) {
12178 void Sema::SetDeclDefaulted(Decl *Dcl, SourceLocation DefaultLoc) {
12250 static void SearchForReturnInStmt(Sema &Self, Stmt *S) {
12263 void Sema::DiagnoseReturnInConstructorExceptionHandler(CXXTryStmt *TryBlock) {
12270 bool Sema::CheckOverridingFunctionAttributes(const CXXMethodDecl *New,
12284 // Sema::CheckFunctionDeclaration) is more clear.
12295 bool Sema::CheckOverridingFunctionReturnType(const CXXMethodDecl *New,
12405 bool Sema::CheckPureMethod(CXXMethodDecl *Method, SourceRange InitRange) {
12436 void Sema::ActOnCXXEnterDeclInitializer(Scope *S, Decl *D) {
12457 void Sema::ActOnCXXExitDeclInitializer(Scope *S, Decl *D) {
12472 DeclResult Sema::ActOnCXXConditionDeclaration(Scope *S, Declarator &D) {
12493 void Sema::LoadExternalVTableUses() {
12517 void Sema::MarkVTableUsed(SourceLocation Loc, CXXRecordDecl *Class,
12565 bool Sema::DefineUsedVTables() {
12654 void Sema::MarkVirtualMemberExceptionSpecsNeeded(SourceLocation Loc,
12661 void Sema::MarkVirtualMembersReferenced(SourceLocation Loc,
12697 void Sema::SetIvarInitializers(ObjCImplementationDecl *ObjCImplementation) {
12755 Sema &S) {
12815 void Sema::CheckDelegatingCtorCycles() {
12833 Sema &S;
12836 explicit FindCXXThisExpr(Sema &S) : S(S) { }
12846 bool Sema::checkThisInStaticMemberFunctionType(CXXMethodDecl *Method) {
12878 bool Sema::checkThisInStaticMemberFunctionExceptionSpec(CXXMethodDecl *Method) {
12915 bool Sema::checkThisInStaticMemberFunctionAttributes(CXXMethodDecl *Method) {
12963 Sema::checkExceptionSpecification(ExceptionSpecificationType EST,
13019 Sema::CUDAFunctionTarget Sema::IdentifyCUDATarget(const FunctionDecl *D) {
13037 bool Sema::CheckCUDATarget(CUDAFunctionTarget CallerTarget,
13060 MSPropertyDecl *Sema::HandleMSProperty(Scope *S, RecordDecl *Record,