[clang] [Clang] Fix: Handle member pointer in `EmitNullabilityChecks` (PR #227738)
Eli Friedman via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 30 12:47:52 PDT 2026
================
@@ -783,7 +783,14 @@ void CodeGenFunction::EmitNullabilityCheck(LValue LHS, llvm::Value *RHS,
auto CheckOrdinal = SanitizerKind::SO_NullabilityAssign;
auto CheckHandler = SanitizerHandler::TypeMismatch;
SanitizerDebugLocation SanScope(this, {CheckOrdinal}, CheckHandler);
- llvm::Value *IsNotNull = Builder.CreateIsNotNull(RHS);
+ llvm::Value *IsNotNull;
+ if (RHS->getType()->isAggregateType()) {
----------------
efriedma-quic wrote:
This should be `if (auto *MPT = LHS.getType()->getAs<MemberPointerType>())` or something like that. Consider:
```
struct S { int a; };
void f() {
int S::* _Nonnull x = nullptr;
}
```
https://github.com/llvm/llvm-project/pull/227738
More information about the cfe-commits
mailing list