From 08d3e4c99918b316ca367c990f65c665bd765b06 Mon Sep 17 00:00:00 2001 From: Allan Shortlidge Date: Sun, 6 Apr 2025 13:20:32 -0700 Subject: [PATCH] Store the backing decl on AvailabilityDomainInfo. Swift needs to be able to look up the `VarDecl` that defines a given feature availability domain. --- clang/include/clang/AST/ASTContext.h | 1 + clang/lib/AST/ASTContext.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/AST/ASTContext.h b/clang/include/clang/AST/ASTContext.h index a0c1216f85e90..66463b49cb208 100644 --- a/clang/include/clang/AST/ASTContext.h +++ b/clang/include/clang/AST/ASTContext.h @@ -825,6 +825,7 @@ class ASTContext : public RefCountedBase { struct AvailabilityDomainInfo { FeatureAvailKind Kind = FeatureAvailKind::None; + Decl *Decl = nullptr; ImplicitCastExpr *Call = nullptr; bool isInvalid() const { return Kind == FeatureAvailKind::None; } }; diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index cb50e52768597..fff55ef53a496 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -980,7 +980,7 @@ ASTContext::getFeatureAvailInfo(Decl *D) const { llvm_unreachable("invalid feature kind"); } - ASTContext::AvailabilityDomainInfo Info{Kind, nullptr}; + ASTContext::AvailabilityDomainInfo Info{Kind, D, nullptr}; if (Kind == FeatureAvailKind::Dynamic) { Expr *FnExpr = Init->getInit(1);