@@ -2108,8 +2108,6 @@ Type RawLayoutAttr::getResolvedCountType(StructDecl *sd) const {
2108
2108
ErrorType::get (ctx));
2109
2109
}
2110
2110
2111
- #define INIT_VER_TUPLE (X ) X(X.empty() ? std::optional<llvm::VersionTuple>() : X)
2112
-
2113
2111
AvailableAttr::AvailableAttr (
2114
2112
SourceLoc AtLoc, SourceRange Range, const AvailabilityDomain &Domain,
2115
2113
Kind Kind, StringRef Message, StringRef Rename,
@@ -2118,10 +2116,10 @@ AvailableAttr::AvailableAttr(
2118
2116
const llvm::VersionTuple &Obsoleted, SourceRange ObsoletedRange,
2119
2117
bool Implicit, bool IsSPI)
2120
2118
: DeclAttribute(DeclAttrKind::Available, AtLoc, Range, Implicit),
2121
- Domain(Domain), Message(Message), Rename(Rename),
2122
- INIT_VER_TUPLE(Introduced ), IntroducedRange(IntroducedRange ),
2123
- INIT_VER_TUPLE(Deprecated ), DeprecatedRange(DeprecatedRange ),
2124
- INIT_VER_TUPLE(Obsoleted), ObsoletedRange(ObsoletedRange) {
2119
+ Domain(Domain), Message(Message), Rename(Rename), Introduced(Introduced),
2120
+ IntroducedRange(IntroducedRange ), Deprecated(Deprecated ),
2121
+ DeprecatedRange(DeprecatedRange ), Obsoleted(Obsoleted ),
2122
+ ObsoletedRange(ObsoletedRange) {
2125
2123
Bits.AvailableAttr .Kind = static_cast <uint8_t >(Kind);
2126
2124
Bits.AvailableAttr .HasComputedSemanticAttr = false ;
2127
2125
Bits.AvailableAttr .HasDomain = true ;
@@ -2130,8 +2128,6 @@ AvailableAttr::AvailableAttr(
2130
2128
Bits.AvailableAttr .IsSPI = IsSPI;
2131
2129
}
2132
2130
2133
- #undef INIT_VER_TUPLE
2134
-
2135
2131
AvailableAttr *AvailableAttr::createUniversallyUnavailable (ASTContext &C,
2136
2132
StringRef Message,
2137
2133
StringRef Rename) {
@@ -2199,12 +2195,9 @@ bool BackDeployedAttr::isActivePlatform(const ASTContext &ctx,
2199
2195
AvailableAttr *AvailableAttr::clone (ASTContext &C, bool implicit) const {
2200
2196
return new (C) AvailableAttr (
2201
2197
implicit ? SourceLoc () : AtLoc, implicit ? SourceRange () : getRange (),
2202
- Domain, getKind (), Message, Rename,
2203
- Introduced ? *Introduced : llvm::VersionTuple (),
2204
- implicit ? SourceRange () : IntroducedRange,
2205
- Deprecated ? *Deprecated : llvm::VersionTuple (),
2206
- implicit ? SourceRange () : DeprecatedRange,
2207
- Obsoleted ? *Obsoleted : llvm::VersionTuple (),
2198
+ Domain, getKind (), Message, Rename, Introduced,
2199
+ implicit ? SourceRange () : IntroducedRange, Deprecated,
2200
+ implicit ? SourceRange () : DeprecatedRange, Obsoleted,
2208
2201
implicit ? SourceRange () : ObsoletedRange, implicit, isSPI ());
2209
2202
}
2210
2203
@@ -2294,7 +2287,7 @@ SemanticAvailableAttr::getVersionAvailability(const ASTContext &ctx) const {
2294
2287
return AvailableVersionComparison::Unavailable;
2295
2288
2296
2289
llvm::VersionTuple queryVersion = getActiveVersion (ctx);
2297
- std::optional<llvm::VersionTuple> ObsoletedVersion = attr-> Obsoleted ;
2290
+ std::optional<llvm::VersionTuple> ObsoletedVersion = getObsoleted () ;
2298
2291
2299
2292
StringRef ObsoletedPlatform;
2300
2293
llvm::VersionTuple RemappedObsoletedVersion;
@@ -2307,7 +2300,7 @@ SemanticAvailableAttr::getVersionAvailability(const ASTContext &ctx) const {
2307
2300
if (ObsoletedVersion && *ObsoletedVersion <= queryVersion)
2308
2301
return AvailableVersionComparison::Obsoleted;
2309
2302
2310
- std::optional<llvm::VersionTuple> IntroducedVersion = attr-> Introduced ;
2303
+ std::optional<llvm::VersionTuple> IntroducedVersion = getIntroduced () ;
2311
2304
StringRef IntroducedPlatform;
2312
2305
llvm::VersionTuple RemappedIntroducedVersion;
2313
2306
if (AvailabilityInference::updateIntroducedPlatformForFallback (
0 commit comments