[clang] [clang] Remove "unknown" from availability diags (PR #138610)
via cfe-commits
cfe-commits at lists.llvm.org
Mon May 5 16:20:49 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Cyndy Ishida (cyndyishida)
<details>
<summary>Changes</summary>
Previously, diagnostics like `error: 'fNew' is unavailable: introduced in macOS 11 unknown` were getting emitted when the active target triple didn't have an environment tied to it. Instead, add a guard against this to avoid the `unknown`.
---
Full diff: https://github.com/llvm/llvm-project/pull/138610.diff
1 Files Affected:
- (modified) clang/lib/AST/DeclBase.cpp (+8-6)
``````````diff
diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp
index fead99c5f28a9..47857e7fd523b 100644
--- a/clang/lib/AST/DeclBase.cpp
+++ b/clang/lib/AST/DeclBase.cpp
@@ -695,11 +695,13 @@ static AvailabilityResult CheckAvailability(ASTContext &Context,
if (!A->getIntroduced().empty() &&
EnclosingVersion < A->getIntroduced()) {
IdentifierInfo *IIEnv = A->getEnvironment();
- StringRef TargetEnv =
- Context.getTargetInfo().getTriple().getEnvironmentName();
- StringRef EnvName = llvm::Triple::getEnvironmentTypeName(
- Context.getTargetInfo().getTriple().getEnvironment());
- // Matching environment or no environment on attribute
+ auto &Triple = Context.getTargetInfo().getTriple();
+ StringRef TargetEnv = Triple.getEnvironmentName();
+ StringRef EnvName =
+ Triple.hasEnvironment()
+ ? llvm::Triple::getEnvironmentTypeName(Triple.getEnvironment())
+ : "";
+ // Matching environment or no environment on attribute.
if (!IIEnv || (!TargetEnv.empty() && IIEnv->getName() == TargetEnv)) {
if (Message) {
Message->clear();
@@ -709,7 +711,7 @@ static AvailabilityResult CheckAvailability(ASTContext &Context,
<< EnvName << HintMessage;
}
}
- // Non-matching environment or no environment on target
+ // Non-matching environment or no environment on target.
else {
if (Message) {
Message->clear();
``````````
</details>
https://github.com/llvm/llvm-project/pull/138610
More information about the cfe-commits
mailing list