diff options
author | Ankur <arsenic.secondary@gmail.com> | 2023-03-02 14:33:56 +0000 |
---|---|---|
committer | Daniel Grumberg <dgrumberg@apple.com> | 2023-03-02 15:49:46 +0000 |
commit | 65f7a84cf38b9839de0f29877d5ba4895848ea73 (patch) | |
tree | 4f9c144c7ce1c95f2b21af750acc935fcf826d71 /clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | |
parent | 3230a64936d28d1114e9493e620ebbd65f595e07 (diff) | |
download | llvm-65f7a84cf38b9839de0f29877d5ba4895848ea73.zip llvm-65f7a84cf38b9839de0f29877d5ba4895848ea73.tar.gz llvm-65f7a84cf38b9839de0f29877d5ba4895848ea73.tar.bz2 |
[clang][ExtractAPI] Handle platform specific unavailability correctly
This Patch gives ExtractAPI the ability to emit correct availability information for symbols marked as unavailable on a specific platform ( PR#60954 )
Reviewed By: dang
Differential Revision: https://reviews.llvm.org/D144940
Diffstat (limited to 'clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp')
-rw-r--r-- | clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp index 8beb016..8a98f5c 100644 --- a/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp +++ b/clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp @@ -171,12 +171,16 @@ serializeAvailability(const AvailabilitySet &Availabilities) { for (const auto &AvailInfo : Availabilities) { Object Availability; Availability["domain"] = AvailInfo.Domain; - serializeObject(Availability, "introducedVersion", - serializeSemanticVersion(AvailInfo.Introduced)); - serializeObject(Availability, "deprecatedVersion", - serializeSemanticVersion(AvailInfo.Deprecated)); - serializeObject(Availability, "obsoletedVersion", - serializeSemanticVersion(AvailInfo.Obsoleted)); + if (AvailInfo.Unavailable) + Availability["isUnconditionallyUnavailable"] = true; + else { + serializeObject(Availability, "introducedVersion", + serializeSemanticVersion(AvailInfo.Introduced)); + serializeObject(Availability, "deprecatedVersion", + serializeSemanticVersion(AvailInfo.Deprecated)); + serializeObject(Availability, "obsoletedVersion", + serializeSemanticVersion(AvailInfo.Obsoleted)); + } AvailabilityArray.emplace_back(std::move(Availability)); } |