Basic: use switch instead of cascading if's

Rather than have a series of cascading if conditionals, use a switch.  Although
Darwin and android are special, they can be handled just as cleanly in the
switch version.  NFC.
This commit is contained in:
Saleem Abdulrasool
2016-06-26 20:11:21 +00:00
parent cf3fdff042
commit 0cf0786481

View File

@@ -85,22 +85,43 @@ static StringRef getPlatformNameForDarwin(const DarwinPlatformKind platform) {
}
StringRef swift::getPlatformNameForTriple(const llvm::Triple &triple) {
if (triple.isOSDarwin())
switch (triple.getOS()) {
case llvm::Triple::UnknownOS:
llvm_unreachable("unknown OS");
case llvm::Triple::CloudABI:
case llvm::Triple::DragonFly:
case llvm::Triple::KFreeBSD:
case llvm::Triple::Lv2:
case llvm::Triple::NetBSD:
case llvm::Triple::OpenBSD:
case llvm::Triple::Solaris:
case llvm::Triple::Haiku:
case llvm::Triple::Minix:
case llvm::Triple::RTEMS:
case llvm::Triple::NaCl:
case llvm::Triple::CNK:
case llvm::Triple::Bitrig:
case llvm::Triple::AIX:
case llvm::Triple::CUDA:
case llvm::Triple::NVCL:
case llvm::Triple::AMDHSA:
case llvm::Triple::PS4:
case llvm::Triple::ELFIAMCU:
return "";
case llvm::Triple::Darwin:
case llvm::Triple::MacOSX:
case llvm::Triple::IOS:
case llvm::Triple::TvOS:
case llvm::Triple::WatchOS:
return getPlatformNameForDarwin(getDarwinPlatformKind(triple));
if (triple.isAndroid())
return "android";
if (triple.isOSLinux())
return "linux";
if (triple.isOSFreeBSD())
case llvm::Triple::Linux:
return triple.isAndroid() ? "android" : "linux";
case llvm::Triple::FreeBSD:
return "freebsd";
if (triple.isOSWindows())
return "windows";
return "";
case llvm::Triple::Win32:
return "windows";
}
llvm_unreachable("unsupported OS");
}
StringRef swift::getMajorArchitectureName(const llvm::Triple &Triple) {