diff options
| author | Matheus Izvekov <mizvekov@gmail.com> | 2025-03-21 10:54:24 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-21 10:54:24 -0300 |
| commit | 141656644959ea43b61868ef16e3d2782d40ea51 (patch) | |
| tree | d6be138e2335bdf573b8872b2d46b4629bb30905 /clang/lib/CodeGen/CGExprCXX.cpp | |
| parent | ac9049df7e62e2ca4dc5d103593b51639b5715e3 (diff) | |
Reland: [clang] NFC: Clear some uses of MemberPointerType::getClass (#132317)
Relands Original PR: https://github.com/llvm/llvm-project/pull/131965
Addresses
https://github.com/llvm/llvm-project/pull/131965#issuecomment-2741619498
* Fixes isIncompleteType for injected classes
This clears up some uses of getClass on MemberPointerType when
equivalent uses of getMostRecentCXXRecordDecl would be just as simple or
simpler.
This is split-off from a larger patch which removes getClass, in order
to facilitate review.
Diffstat (limited to 'clang/lib/CodeGen/CGExprCXX.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGExprCXX.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp index f71c18a8041b..5d96959065dd 100644 --- a/clang/lib/CodeGen/CGExprCXX.cpp +++ b/clang/lib/CodeGen/CGExprCXX.cpp @@ -453,8 +453,7 @@ CodeGenFunction::EmitCXXMemberPointerCallExpr(const CXXMemberCallExpr *E, const auto *MPT = MemFnExpr->getType()->castAs<MemberPointerType>(); const auto *FPT = MPT->getPointeeType()->castAs<FunctionProtoType>(); - const auto *RD = - cast<CXXRecordDecl>(MPT->getClass()->castAs<RecordType>()->getDecl()); + const auto *RD = MPT->getMostRecentCXXRecordDecl(); // Emit the 'this' pointer. Address This = Address::invalid(); @@ -463,8 +462,9 @@ CodeGenFunction::EmitCXXMemberPointerCallExpr(const CXXMemberCallExpr *E, else This = EmitLValue(BaseExpr, KnownNonNull).getAddress(); - EmitTypeCheck(TCK_MemberCall, E->getExprLoc(), This.emitRawPointer(*this), - QualType(MPT->getClass(), 0)); + EmitTypeCheck( + TCK_MemberCall, E->getExprLoc(), This.emitRawPointer(*this), + QualType(MPT->getMostRecentCXXRecordDecl()->getTypeForDecl(), 0)); // Get the member function pointer. llvm::Value *MemFnPtr = EmitScalarExpr(MemFnExpr); |
