[clang] [clang] Fix a crash when dynamic_cast-ing to a `final` class (PR #148088)
Oliver Hunt via cfe-commits
cfe-commits at lists.llvm.org
Sun Jul 13 18:35:06 PDT 2025
================
@@ -2341,8 +2341,15 @@ llvm::Value *CodeGenFunction::EmitDynamicCast(Address ThisAddr,
} else if (IsExact) {
// If the destination type is effectively final, this pointer points to the
// right type if and only if its vptr has the right value.
- Value = CGM.getCXXABI().emitExactDynamicCast(
- *this, ThisAddr, SrcRecordTy, DestTy, DestRecordTy, CastEnd, CastNull);
+ std::optional<llvm::Value *> ExactCast =
+ CGM.getCXXABI().emitExactDynamicCast(*this, ThisAddr, SrcRecordTy,
----------------
ojhunt wrote:
@efriedma-quic yeah, I was convinced that there must have been a reason this was structured in this way, but having looked at it again I can't work out how/why that would be the case.
https://github.com/llvm/llvm-project/pull/148088
More information about the cfe-commits
mailing list