Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions bolt/lib/Rewrite/RewriteInstance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2665,8 +2665,9 @@ void RewriteInstance::readRelocations(const SectionRef &Section) {
return;
}
const bool SkipRelocs = StringSwitch<bool>(RelocatedSectionName)
.Cases(".plt", ".rela.plt", ".got.plt",
".eh_frame", ".gcc_except_table", true)
.Cases({".plt", ".rela.plt", ".got.plt",
".eh_frame", ".gcc_except_table"},
true)
.Default(false);
if (SkipRelocs) {
LLVM_DEBUG(
Expand Down
10 changes: 5 additions & 5 deletions clang/lib/AST/Decl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3380,11 +3380,11 @@ bool FunctionDecl::isMSVCRTEntryPoint() const {
return false;

return llvm::StringSwitch<bool>(getName())
.Cases("main", // an ANSI console app
"wmain", // a Unicode console App
"WinMain", // an ANSI GUI app
"wWinMain", // a Unicode GUI app
"DllMain", // a DLL
.Cases({"main", // an ANSI console app
"wmain", // a Unicode console App
"WinMain", // an ANSI GUI app
"wWinMain", // a Unicode GUI app
"DllMain"}, // a DLL
true)
.Default(false);
}
Expand Down
10 changes: 5 additions & 5 deletions clang/lib/Basic/Targets/Mips.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ void MipsTargetInfo::fillValidCPUList(

unsigned MipsTargetInfo::getISARev() const {
return llvm::StringSwitch<unsigned>(getCPU())
.Cases("mips32", "mips64", 1)
.Cases("mips32r2", "mips64r2", "octeon", "octeon+", 2)
.Cases("mips32r3", "mips64r3", 3)
.Cases("mips32r5", "mips64r5", "p5600", 5)
.Cases("mips32r6", "mips64r6", "i6400", "i6500", 6)
.Cases({"mips32", "mips64"}, 1)
.Cases({"mips32r2", "mips64r2", "octeon", "octeon+"}, 2)
.Cases({"mips32r3", "mips64r3"}, 3)
.Cases({"mips32r5", "mips64r5", "p5600"}, 5)
.Cases({"mips32r6", "mips64r6", "i6400", "i6500"}, 6)
.Default(0);
}

Expand Down
6 changes: 3 additions & 3 deletions clang/lib/Driver/ToolChains/Arch/Mips.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -482,9 +482,9 @@ bool mips::isFPXXDefault(const llvm::Triple &Triple, StringRef CPUName,
return false;

return llvm::StringSwitch<bool>(CPUName)
.Cases("mips2", "mips3", "mips4", "mips5", true)
.Cases("mips32", "mips32r2", "mips32r3", "mips32r5", true)
.Cases("mips64", "mips64r2", "mips64r3", "mips64r5", true)
.Cases({"mips2", "mips3", "mips4", "mips5"}, true)
.Cases({"mips32", "mips32r2", "mips32r3", "mips32r5"}, true)
.Cases({"mips64", "mips64r2", "mips64r3", "mips64r5"}, true)
.Default(false);
}

Expand Down
14 changes: 7 additions & 7 deletions clang/lib/Driver/ToolChains/Darwin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,15 @@ llvm::Triple::ArchType darwin::getArchTypeForMachOArchName(StringRef Str) {
// translation.

return llvm::StringSwitch<llvm::Triple::ArchType>(Str)
.Cases("i386", "i486", "i486SX", "i586", "i686", llvm::Triple::x86)
.Cases("pentium", "pentpro", "pentIIm3", "pentIIm5", "pentium4",
.Cases({"i386", "i486", "i486SX", "i586", "i686"}, llvm::Triple::x86)
.Cases({"pentium", "pentpro", "pentIIm3", "pentIIm5", "pentium4"},
llvm::Triple::x86)
.Cases("x86_64", "x86_64h", llvm::Triple::x86_64)
.Cases({"x86_64", "x86_64h"}, llvm::Triple::x86_64)
// This is derived from the driver.
.Cases("arm", "armv4t", "armv5", "armv6", "armv6m", llvm::Triple::arm)
.Cases("armv7", "armv7em", "armv7k", "armv7m", llvm::Triple::arm)
.Cases("armv7s", "xscale", llvm::Triple::arm)
.Cases("arm64", "arm64e", llvm::Triple::aarch64)
.Cases({"arm", "armv4t", "armv5", "armv6", "armv6m"}, llvm::Triple::arm)
.Cases({"armv7", "armv7em", "armv7k", "armv7m"}, llvm::Triple::arm)
.Cases({"armv7s", "xscale"}, llvm::Triple::arm)
.Cases({"arm64", "arm64e"}, llvm::Triple::aarch64)
.Case("arm64_32", llvm::Triple::aarch64_32)
.Case("r600", llvm::Triple::r600)
.Case("amdgcn", llvm::Triple::amdgcn)
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Frontend/FrontendAction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ static std::error_code collectModuleHeaderIncludes(
// Check whether this entry has an extension typically associated with
// headers.
if (!llvm::StringSwitch<bool>(llvm::sys::path::extension(Dir->path()))
.Cases(".h", ".H", ".hh", ".hpp", true)
.Cases({".h", ".H", ".hh", ".hpp"}, true)
.Default(false))
continue;

Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Lex/PPLexerChange.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ void Preprocessor::diagnoseMissingHeaderInUmbrellaDir(const Module &Mod) {
// Check whether this entry has an extension typically associated with
// headers.
if (!StringSwitch<bool>(llvm::sys::path::extension(Entry->path()))
.Cases(".h", ".H", ".hh", ".hpp", true)
.Cases({".h", ".H", ".hh", ".hpp"}, true)
.Default(false))
continue;

Expand Down
9 changes: 5 additions & 4 deletions clang/lib/Parse/ParsePragma.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1419,10 +1419,11 @@ bool Parser::HandlePragmaLoopHint(LoopHint &Hint) {

// Return a valid hint if pragma unroll or nounroll were specified
// without an argument.
auto IsLoopHint = llvm::StringSwitch<bool>(PragmaNameInfo->getName())
.Cases("unroll", "nounroll", "unroll_and_jam",
"nounroll_and_jam", true)
.Default(false);
auto IsLoopHint =
llvm::StringSwitch<bool>(PragmaNameInfo->getName())
.Cases({"unroll", "nounroll", "unroll_and_jam", "nounroll_and_jam"},
true)
.Default(false);

if (Toks.empty() && IsLoopHint) {
ConsumeAnnotationToken();
Expand Down
12 changes: 6 additions & 6 deletions clang/lib/Sema/SemaChecking.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6926,13 +6926,13 @@ StringRef Sema::GetFormatStringTypeName(FormatStringType FST) {

FormatStringType Sema::GetFormatStringType(StringRef Flavor) {
return llvm::StringSwitch<FormatStringType>(Flavor)
.Cases("gnu_scanf", "scanf", FormatStringType::Scanf)
.Cases("gnu_printf", "printf", "printf0", "syslog",
.Cases({"gnu_scanf", "scanf"}, FormatStringType::Scanf)
.Cases({"gnu_printf", "printf", "printf0", "syslog"},
FormatStringType::Printf)
.Cases("NSString", "CFString", FormatStringType::NSString)
.Cases("gnu_strftime", "strftime", FormatStringType::Strftime)
.Cases("gnu_strfmon", "strfmon", FormatStringType::Strfmon)
.Cases("kprintf", "cmn_err", "vcmn_err", "zcmn_err",
.Cases({"NSString", "CFString"}, FormatStringType::NSString)
.Cases({"gnu_strftime", "strftime"}, FormatStringType::Strftime)
.Cases({"gnu_strfmon", "strfmon"}, FormatStringType::Strfmon)
.Cases({"kprintf", "cmn_err", "vcmn_err", "zcmn_err"},
FormatStringType::Kprintf)
.Case("freebsd_kprintf", FormatStringType::FreeBSDKPrintf)
.Case("os_trace", FormatStringType::OSLog)
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Sema/SemaExpr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12811,7 +12811,7 @@ QualType Sema::CheckCompareOperands(ExprResult &LHS, ExprResult &RHS,
if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(DC)) {
if (CTSD->isInStdNamespace() &&
llvm::StringSwitch<bool>(CTSD->getName())
.Cases("less", "less_equal", "greater", "greater_equal", true)
.Cases({"less", "less_equal", "greater", "greater_equal"}, true)
.Default(false)) {
if (RHSType->isNullPtrType())
RHS = ImpCastExprToType(RHS.get(), LHSType, CK_NullToPointer);
Expand Down
11 changes: 6 additions & 5 deletions clang/lib/Sema/SemaInit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -672,11 +672,12 @@ ExprResult InitListChecker::PerformEmptyInit(SourceLocation Loc,
IsInStd = true;
}

if (IsInStd && llvm::StringSwitch<bool>(R->getName())
.Cases("basic_string", "deque", "forward_list", true)
.Cases("list", "map", "multimap", "multiset", true)
.Cases("priority_queue", "queue", "set", "stack", true)
.Cases("unordered_map", "unordered_set", "vector", true)
if (IsInStd &&
llvm::StringSwitch<bool>(R->getName())
.Cases({"basic_string", "deque", "forward_list"}, true)
.Cases({"list", "map", "multimap", "multiset"}, true)
.Cases({"priority_queue", "queue", "set", "stack"}, true)
.Cases({"unordered_map", "unordered_set", "vector"}, true)
.Default(false)) {
InitSeq.InitializeFrom(
SemaRef, Entity,
Expand Down
2 changes: 1 addition & 1 deletion clang/lib/Sema/SemaStmtAttr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ static Attr *handleLoopHintAttr(Sema &S, Stmt *St, const ParsedAttr &A,
StringRef PragmaName =
llvm::StringSwitch<StringRef>(
PragmaNameLoc->getIdentifierInfo()->getName())
.Cases("unroll", "nounroll", "unroll_and_jam", "nounroll_and_jam",
.Cases({"unroll", "nounroll", "unroll_and_jam", "nounroll_and_jam"},
PragmaNameLoc->getIdentifierInfo()->getName())
.Default("clang loop");

Expand Down
2 changes: 1 addition & 1 deletion clang/unittests/Driver/MultilibBuilderTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ TEST(MultilibBuilderTest, SetConstruction2) {
ASSERT_TRUE(MS.size() == 4);
for (MultilibSet::const_iterator I = MS.begin(), E = MS.end(); I != E; ++I) {
ASSERT_TRUE(llvm::StringSwitch<bool>(I->gccSuffix())
.Cases("", "/sof", "/el", "/sof/el", true)
.Cases({"", "/sof", "/el", "/sof/el"}, true)
.Default(false))
<< "Multilib " << *I << " wasn't expected";
ASSERT_TRUE(llvm::StringSwitch<bool>(I->gccSuffix())
Expand Down
23 changes: 12 additions & 11 deletions clang/utils/TableGen/ClangOptionDocEmitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,11 @@ Documentation extractDocumentation(const RecordKeeper &Records,
// Get the first and successive separators to use for an OptionKind.
std::pair<StringRef,StringRef> getSeparatorsForKind(const Record *OptionKind) {
return StringSwitch<std::pair<StringRef, StringRef>>(OptionKind->getName())
.Cases("KIND_JOINED", "KIND_JOINED_OR_SEPARATE",
"KIND_JOINED_AND_SEPARATE",
"KIND_REMAINING_ARGS_JOINED", {"", " "})
.Case("KIND_COMMAJOINED", {"", ","})
.Default({" ", " "});
.Cases({"KIND_JOINED", "KIND_JOINED_OR_SEPARATE",
"KIND_JOINED_AND_SEPARATE", "KIND_REMAINING_ARGS_JOINED"},
{"", " "})
.Case("KIND_COMMAJOINED", {"", ","})
.Default({" ", " "});
}

const unsigned UnlimitedArgs = unsigned(-1);
Expand All @@ -186,12 +186,13 @@ const unsigned UnlimitedArgs = unsigned(-1);
// arguments are accepted.
unsigned getNumArgsForKind(const Record *OptionKind, const Record *Option) {
return StringSwitch<unsigned>(OptionKind->getName())
.Cases("KIND_JOINED", "KIND_JOINED_OR_SEPARATE", "KIND_SEPARATE", 1)
.Cases("KIND_REMAINING_ARGS", "KIND_REMAINING_ARGS_JOINED",
"KIND_COMMAJOINED", UnlimitedArgs)
.Case("KIND_JOINED_AND_SEPARATE", 2)
.Case("KIND_MULTIARG", Option->getValueAsInt("NumArgs"))
.Default(0);
.Cases({"KIND_JOINED", "KIND_JOINED_OR_SEPARATE", "KIND_SEPARATE"}, 1)
.Cases({"KIND_REMAINING_ARGS", "KIND_REMAINING_ARGS_JOINED",
"KIND_COMMAJOINED"},
UnlimitedArgs)
.Case("KIND_JOINED_AND_SEPARATE", 2)
.Case("KIND_MULTIARG", Option->getValueAsInt("NumArgs"))
.Default(0);
}

std::string escapeRST(StringRef Str) {
Expand Down
10 changes: 5 additions & 5 deletions lld/ELF/ScriptParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -721,11 +721,11 @@ void ScriptParser::readTarget() {

static int precedence(StringRef op) {
return StringSwitch<int>(op)
.Cases("*", "/", "%", 11)
.Cases("+", "-", 10)
.Cases("<<", ">>", 9)
.Cases("<", "<=", ">", ">=", 8)
.Cases("==", "!=", 7)
.Cases({"*", "/", "%"}, 11)
.Cases({"+", "-"}, 10)
.Cases({"<<", ">>"}, 9)
.Cases({"<", "<=", ">", ">="}, 8)
.Cases({"==", "!="}, 7)
.Case("&", 6)
.Case("^", 5)
.Case("|", 4)
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/MC/MCParser/MasmParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2903,7 +2903,7 @@ bool MasmParser::parseIdentifier(StringRef &Res,
if (Position == StartOfStatement &&
StringSwitch<bool>(Res)
.CaseLower("echo", true)
.CasesLower("ifdef", "ifndef", "elseifdef", "elseifndef", true)
.CasesLower({"ifdef", "ifndef", "elseifdef", "elseifndef"}, true)
.Default(false)) {
ExpandNextToken = DoNotExpandMacros;
}
Expand Down
2 changes: 1 addition & 1 deletion llvm/lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ const llvm::StringRef RISCVSEWInstrument::DESC_NAME = "RISCV-SEW";
bool RISCVSEWInstrument::isDataValid(llvm::StringRef Data) {
// Return true if not one of the valid SEW strings
return StringSwitch<bool>(Data)
.Cases("E8", "E16", "E32", "E64", true)
.Cases({"E8", "E16", "E32", "E64"}, true)
.Default(false);
}

Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/TargetParser/ARMTargetParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -235,16 +235,16 @@ ARM::NeonSupportLevel ARM::getFPUNeonSupportLevel(ARM::FPUKind FPUKind) {

StringRef ARM::getFPUSynonym(StringRef FPU) {
return StringSwitch<StringRef>(FPU)
.Cases("fpa", "fpe2", "fpe3", "maverick", "invalid") // Unsupported
.Cases({"fpa", "fpe2", "fpe3", "maverick"}, "invalid") // Unsupported
.Case("vfp2", "vfpv2")
.Case("vfp3", "vfpv3")
.Case("vfp4", "vfpv4")
.Case("vfp3-d16", "vfpv3-d16")
.Case("vfp4-d16", "vfpv4-d16")
.Cases("fp4-sp-d16", "vfpv4-sp-d16", "fpv4-sp-d16")
.Cases("fp4-dp-d16", "fpv4-dp-d16", "vfpv4-d16")
.Cases({"fp4-sp-d16", "vfpv4-sp-d16"}, "fpv4-sp-d16")
.Cases({"fp4-dp-d16", "fpv4-dp-d16"}, "vfpv4-d16")
.Case("fp5-sp-d16", "fpv5-sp-d16")
.Cases("fp5-dp-d16", "fpv5-dp-d16", "fpv5-d16")
.Cases({"fp5-dp-d16", "fpv5-dp-d16"}, "fpv5-d16")
// FIXME: Clang uses it, but it's bogus, since neon defaults to vfpv3.
.Case("neon-vfpv3", "neon")
.Default(FPU);
Expand Down
8 changes: 4 additions & 4 deletions llvm/unittests/ADT/StringSwitchTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ TEST(StringSwitchTest, Cases) {
return llvm::StringSwitch<OSType>(S)
.Cases(StringLiteral::withInnerNUL("wind\0ws"), "win32", "winnt",
OSType::Windows)
.Cases("linux", "unix", "*nix", "posix", OSType::Linux)
.Cases({"linux", "unix", "*nix", "posix"}, OSType::Linux)
.Cases({"macos", "osx"}, OSType::MacOS)
.Default(OSType::Unknown);
};
Expand Down Expand Up @@ -191,7 +191,7 @@ TEST(StringSwitchTest, CasesLower) {
return llvm::StringSwitch<OSType>(S)
.CasesLower(StringLiteral::withInnerNUL("wind\0ws"), "win32", "winnt",
OSType::Windows)
.CasesLower("linux", "unix", "*nix", "posix", OSType::Linux)
.CasesLower({"linux", "unix", "*nix", "posix"}, OSType::Linux)
.CasesLower({"macos", "osx"}, OSType::MacOS)
.Default(OSType::Unknown);
};
Expand Down Expand Up @@ -230,13 +230,13 @@ TEST(StringSwitchTest, CasesCopies) {

// Check that evaluating multiple cases does not cause unnecessary copies.
unsigned NumCopies = 0;
llvm::StringSwitch<Copyable, void>("baz").Cases("foo", "bar", "baz", "qux",
llvm::StringSwitch<Copyable, void>("baz").Cases({"foo", "bar", "baz", "qux"},
Copyable{NumCopies});
EXPECT_EQ(NumCopies, 1u);

NumCopies = 0;
llvm::StringSwitch<Copyable, void>("baz").CasesLower(
"Foo", "Bar", "Baz", "Qux", Copyable{NumCopies});
{"Foo", "Bar", "Baz", "Qux"}, Copyable{NumCopies});
EXPECT_EQ(NumCopies, 1u);
}

Expand Down
Loading