From d8979bee2b37fcadb7a91ae2481c611094e6c164 Mon Sep 17 00:00:00 2001 From: term-est 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() && !FD->hasAttr() && - isKnownToAlwaysThrow(FD)) { + if (!FD->hasAttr() && !FD->hasAttr() && + !FD->hasAttr() && isKnownToAlwaysThrow(FD)) { NonConstFD->addAttr(InferredNoReturnAttr::CreateImplicit(S.Context)); // Emit a diagnostic suggesting the function being marked [[noreturn]].