[clang] [Clang][Sema][NFC]Use isa_and_nonnull to simplify the code and avoid build warning (PR #84181)

via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 6 06:56:20 PST 2024


https://github.com/ZERO-N updated https://github.com/llvm/llvm-project/pull/84181

>From edf4b035294923b38330081d2c930172870d8886 Mon Sep 17 00:00:00 2001
From: nwh <1416312228 at qq.com>
Date: Wed, 6 Mar 2024 22:45:59 +0800
Subject: [PATCH] [Clang][Sema][NFC]Use isa_and_nonnull to simplify the code

Signed-off-by: nwh <1416312228 at qq.com>
---
 clang/lib/Sema/SemaExceptionSpec.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/clang/lib/Sema/SemaExceptionSpec.cpp b/clang/lib/Sema/SemaExceptionSpec.cpp
index 3563b4f683f079..0ce00dd0f847ec 100644
--- a/clang/lib/Sema/SemaExceptionSpec.cpp
+++ b/clang/lib/Sema/SemaExceptionSpec.cpp
@@ -21,6 +21,7 @@
 #include "clang/Basic/SourceManager.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Casting.h"
 #include <optional>
 
 namespace clang {
@@ -1017,13 +1018,13 @@ CanThrowResult Sema::canCalleeThrow(Sema &S, const Expr *E, const Decl *D,
                                     SourceLocation Loc) {
   // As an extension, we assume that __attribute__((nothrow)) functions don't
   // throw.
-  if (D && isa<FunctionDecl>(D) && D->hasAttr<NoThrowAttr>())
+  if (isa_and_nonnull<FunctionDecl>(D) && D->hasAttr<NoThrowAttr>())
     return CT_Cannot;
 
   QualType T;
 
   // In C++1z, just look at the function type of the callee.
-  if (S.getLangOpts().CPlusPlus17 && E && isa<CallExpr>(E)) {
+  if (S.getLangOpts().CPlusPlus17 && isa_and_nonnull<CallExpr>(E)) {
     E = cast<CallExpr>(E)->getCallee();
     T = E->getType();
     if (T->isSpecificPlaceholderType(BuiltinType::BoundMember)) {



More information about the cfe-commits mailing list