summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp')
-rw-r--r--gnu/llvm/tools/clang/lib/Basic/ObjCRuntime.cpp98
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;
-}