38 IO.
enumCase(Constraint,
"retain_release_for_simulator",
40 IO.
enumCase(Constraint,
"retain_release_or_gc",
45void ScalarTraits<PlatformSet>::output(
const PlatformSet &Values,
void *IO,
50 "File type is not set in context");
52 if (Ctx && Ctx->FileKind ==
TBD_V3 && Values.
count(PLATFORM_MACOS) &&
53 Values.
count(PLATFORM_MACCATALYST)) {
59 switch (*Values.
begin()) {
66 case PLATFORM_IOSSIMULATOR:
71 case PLATFORM_WATCHOSSIMULATOR:
73 case PLATFORM_WATCHOS:
76 case PLATFORM_TVOSSIMULATOR:
81 case PLATFORM_BRIDGEOS:
84 case PLATFORM_MACCATALYST:
87 case PLATFORM_DRIVERKIT:
95 const auto *Ctx =
reinterpret_cast<TextAPIContext *
>(
IO);
96 assert((!Ctx || Ctx->FileKind != FileType::Invalid) &&
97 "File type is not set in context");
99 if (
Scalar ==
"zippered") {
100 if (Ctx && Ctx->FileKind == FileType::TBD_V3) {
101 Values.
insert(PLATFORM_MACOS);
102 Values.
insert(PLATFORM_MACCATALYST);
105 return "invalid platform";
108 auto Platform = StringSwitch<PlatformType>(
Scalar)
109 .Case(
"macosx", PLATFORM_MACOS)
110 .Case(
"ios", PLATFORM_IOS)
111 .Case(
"watchos", PLATFORM_WATCHOS)
112 .Case(
"tvos", PLATFORM_TVOS)
113 .Case(
"bridgeos", PLATFORM_BRIDGEOS)
114 .Case(
"iosmac", PLATFORM_MACCATALYST)
115 .Case(
"maccatalyst", PLATFORM_MACCATALYST)
116 .Case(
"driverkit", PLATFORM_DRIVERKIT)
117 .Default(PLATFORM_UNKNOWN);
119 if (Platform == PLATFORM_MACCATALYST)
120 if (Ctx && Ctx->FileKind != FileType::TBD_V3)
121 return "invalid platform";
123 if (Platform == PLATFORM_UNKNOWN)
124 return "unknown platform";
135 ArchitectureSet &Archs) {
136#define ARCHINFO(arch, name, type, subtype, numbits) \
137 IO.bitSetCase(Archs, #arch, 1U << static_cast<int>(AK_##arch));
138#include "llvm/TextAPI/Architecture.def"
160 PackedVersion &
Value) {
162 return "invalid packed version string.";
190 SwiftVersion &
Value) {
193 "File type is not set in context");
197 return "invalid Swift ABI version.";
208 if (
Value != SwiftVersion(0))
212 return "invalid Swift ABI version.";
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
std::pair< llvm::MachO::Target, std::string > UUID
const_iterator begin() const
size_type count(const T &V) const
count - Return 1 if the element is in the set, 0 otherwise.
std::pair< const_iterator, bool > insert(const T &V)
insert - Insert an element into the set if it isn't already there.
StringRef - Represent a constant reference to a string, i.e.
A switch()-like statement whose cases are string literals.
StringSwitch & Case(StringLiteral S, T Value)
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
void enumCase(T &Val, const char *Str, const T ConstVal)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
LLVM_ABI Architecture getArchitectureFromName(StringRef Name)
Convert a name to an architecture slice.
@ Invalid
Invalid file type.
@ TBD_V3
Text-based stub file (.tbd) version 3.0.
@ TBD_V4
Text-based stub file (.tbd) version 4.0.
SmallSet< PlatformType, 3 > PlatformSet
ObjCConstraintType
Defines a list of Objective-C constraints.
@ Retain_Release_For_Simulator
Retain/Release for Simulator.
@ Retain_Release_Or_GC
Retain/Release or Garbage Collection.
@ Retain_Release
Retain/Release.
Architecture
Defines the architecture slices that are supported by Text-based Stub files.
QuotingType
Describe which type of quotes should be used when quoting is necessary.
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr Value
This class should be specialized by any integer type that is a union of bit values and the YAML repre...
This class should be specialized by any integral type that converts to/from a YAML scalar where there...
This class should be specialized by type that requires custom conversion to/from a yaml scalar.