[clang] Fix an issue where we erroneously diagnose a `[[noreturn]]` function with `warn_suggest_noreturn_function` (PR #148695)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 14 11:23:17 PDT 2025
https://github.com/term-est updated https://github.com/llvm/llvm-project/pull/148695
>From d8979bee2b37fcadb7a91ae2481c611094e6c164 Mon Sep 17 00:00:00 2001
From: term-est <eurasia.sely at gmail.com>
Date: Mon, 14 Jul 2025 21:07:58 +0300
Subject: [PATCH] Fix an issue where we erroneously diagnose a `[[noreturn]]`
function with `warn_suggest_noreturn_function`
---
clang/lib/Sema/SemaDeclAttr.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 099207727c8c8..43262d7cb50a8 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -1976,8 +1976,8 @@ void clang::inferNoReturnAttr(Sema &S, const Decl *D) {
Diags.isIgnored(diag::warn_suggest_noreturn_function, FD->getLocation()))
return;
- if (!FD->hasAttr<NoReturnAttr>() && !FD->hasAttr<InferredNoReturnAttr>() &&
- isKnownToAlwaysThrow(FD)) {
+ if (!FD->hasAttr<NoReturnAttr>() && !FD->hasAttr<CXX11NoReturnAttr>() &&
+ !FD->hasAttr<InferredNoReturnAttr>() && isKnownToAlwaysThrow(FD)) {
NonConstFD->addAttr(InferredNoReturnAttr::CreateImplicit(S.Context));
// Emit a diagnostic suggesting the function being marked [[noreturn]].
More information about the cfe-commits
mailing list