diff options
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp b/gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp deleted file mode 100644 index 311bd067261..00000000000 --- a/gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp +++ /dev/null @@ -1,98 +0,0 @@ -//===- ObjCRuntime.cpp - Objective-C Runtime Handling ---------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file implements the ObjCRuntime class, which represents the -// target Objective-C runtime. -// -//===----------------------------------------------------------------------===// - -#include "clang/Basic/ObjCRuntime.h" -#include "llvm/ADT/StringRef.h" -#include "llvm/Support/VersionTuple.h" -#include "llvm/Support/raw_ostream.h" -#include <cstddef> -#include <string> - -using namespace clang; - -std::string ObjCRuntime::getAsString() const { - std::string Result; - { - llvm::raw_string_ostream Out(Result); - Out << *this; - } - return Result; -} - -raw_ostream &clang::operator<<(raw_ostream &out, const ObjCRuntime &value) { - switch (value.getKind()) { - case ObjCRuntime::MacOSX: out << "macosx"; break; - case ObjCRuntime::FragileMacOSX: out << "macosx-fragile"; break; - case ObjCRuntime::iOS: out << "ios"; break; - case ObjCRuntime::WatchOS: out << "watchos"; break; - case ObjCRuntime::GNUstep: out << "gnustep"; break; - case ObjCRuntime::GCC: out << "gcc"; break; - case ObjCRuntime::ObjFW: out << "objfw"; break; - } - if (value.getVersion() > VersionTuple(0)) { - out << '-' << value.getVersion(); - } - return out; -} - -bool ObjCRuntime::tryParse(StringRef input) { - // Look for the last dash. - std::size_t dash = input.rfind('-'); - - // We permit dashes in the runtime name, and we also permit the - // version to be omitted, so if we see a dash not followed by a - // digit then we need to ignore it. - if (dash != StringRef::npos && dash + 1 != input.size() && - (input[dash+1] < '0' || input[dash+1] > '9')) { - dash = StringRef::npos; - } - - // Everything prior to that must be a valid string name. - Kind kind; - StringRef runtimeName = input.substr(0, dash); - Version = VersionTuple(0); - if (runtimeName == "macosx") { - kind = ObjCRuntime::MacOSX; - } else if (runtimeName == "macosx-fragile") { - kind = ObjCRuntime::FragileMacOSX; - } else if (runtimeName == "ios") { - kind = ObjCRuntime::iOS; - } else if (runtimeName == "watchos") { - kind = ObjCRuntime::WatchOS; - } else if (runtimeName == "gnustep") { - // If no version is specified then default to the most recent one that we - // know about. - Version = VersionTuple(1, 6); - kind = ObjCRuntime::GNUstep; - } else if (runtimeName == "gcc") { - kind = ObjCRuntime::GCC; - } else if (runtimeName == "objfw") { - kind = ObjCRuntime::ObjFW; - Version = VersionTuple(0, 8); - } else { - return true; - } - TheKind = kind; - - if (dash != StringRef::npos) { - StringRef verString = input.substr(dash + 1); - if (Version.tryParse(verString)) - return true; - } - - if (kind == ObjCRuntime::ObjFW && Version > VersionTuple(0, 8)) - Version = VersionTuple(0, 8); - - return false; -} |
