From 312c6f699d4c9c26d16c5eb5848cb9107ae8affe Mon Sep 17 00:00:00 2001 From: Dávid Bolvanský Date: Sat, 9 Nov 2019 09:02:40 +0100 Subject: [Diagnostics] Fixed crash with non pointer type (PR43950) --- clang/lib/Sema/SemaExpr.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 9e917eb7db4..e10331d0741 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -482,7 +482,8 @@ static void CheckForNullPointerDereference(Sema &S, Expr *E) { // to get a deterministic trap and are surprised by clang's behavior. This // only handles the pattern "*null", which is a very syntactic check. const auto *UO = dyn_cast(E->IgnoreParenCasts()); - if (UO && UO->getOpcode() == UO_Deref) { + if (UO && UO->getOpcode() == UO_Deref && + UO->getSubExpr()->getType()->isPointerType()) { const LangAS AS = UO->getSubExpr()->getType()->getPointeeType().getAddressSpace(); if ((!isTargetAddressSpace(AS) || -- cgit v1.2.3