diff options
author | Matheus Izvekov <mizvekov@gmail.com> | 2025-03-19 22:48:49 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-19 22:48:49 -0300 |
commit | 6003c3055a4630be31cc3d459cdbb88248a007b9 (patch) | |
tree | 790812c0159d053af03c3e0ce2d53baae4464cce /clang/lib/Sema/SemaAccess.cpp | |
parent | ead272460004519ccbd98d08d68c70123892cd4e (diff) | |
download | llvm-6003c3055a4630be31cc3d459cdbb88248a007b9.zip llvm-6003c3055a4630be31cc3d459cdbb88248a007b9.tar.gz llvm-6003c3055a4630be31cc3d459cdbb88248a007b9.tar.bz2 |
[clang] NFC: Unify implementations of CheckMemberPointerConversion (#131966)
This deduplicates the implementation of CheckMemberPointerConversion
accross SemaCast and SemaOverload.
Diffstat (limited to 'clang/lib/Sema/SemaAccess.cpp')
-rw-r--r-- | clang/lib/Sema/SemaAccess.cpp | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/clang/lib/Sema/SemaAccess.cpp b/clang/lib/Sema/SemaAccess.cpp index 6813786..4ba46a9 100644 --- a/clang/lib/Sema/SemaAccess.cpp +++ b/clang/lib/Sema/SemaAccess.cpp @@ -1874,11 +1874,9 @@ Sema::AccessResult Sema::CheckAddressOfMemberAccess(Expr *OvlExpr, } Sema::AccessResult Sema::CheckBaseClassAccess(SourceLocation AccessLoc, - QualType Base, - QualType Derived, + QualType Base, QualType Derived, const CXXBasePath &Path, - unsigned DiagID, - bool ForceCheck, + unsigned DiagID, bool ForceCheck, bool ForceUnprivileged) { if (!ForceCheck && !getLangOpts().AccessControl) return AR_accessible; @@ -1886,21 +1884,20 @@ Sema::AccessResult Sema::CheckBaseClassAccess(SourceLocation AccessLoc, if (Path.Access == AS_public) return AR_accessible; - CXXRecordDecl *BaseD, *DerivedD; - BaseD = cast<CXXRecordDecl>(Base->castAs<RecordType>()->getDecl()); - DerivedD = cast<CXXRecordDecl>(Derived->castAs<RecordType>()->getDecl()); - - AccessTarget Entity(Context, AccessTarget::Base, BaseD, DerivedD, - Path.Access); + AccessTarget Entity(Context, AccessTarget::Base, Base->getAsCXXRecordDecl(), + Derived->getAsCXXRecordDecl(), Path.Access); if (DiagID) Entity.setDiag(DiagID) << Derived << Base; if (ForceUnprivileged) { - switch (CheckEffectiveAccess(*this, EffectiveContext(), - AccessLoc, Entity)) { - case ::AR_accessible: return Sema::AR_accessible; - case ::AR_inaccessible: return Sema::AR_inaccessible; - case ::AR_dependent: return Sema::AR_dependent; + switch ( + CheckEffectiveAccess(*this, EffectiveContext(), AccessLoc, Entity)) { + case ::AR_accessible: + return Sema::AR_accessible; + case ::AR_inaccessible: + return Sema::AR_inaccessible; + case ::AR_dependent: + return Sema::AR_dependent; } llvm_unreachable("unexpected result from CheckEffectiveAccess"); } |