aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-11-09 22:45:47 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-11-09 22:45:47 +0000
commit094a84cc06e40a49ef256d0954b83ddd92deebe8 (patch)
tree9f8fc0a120c5c17ff29ac3f05ae4be4a66f586d9
parent3ada2df42673b41ac173c0c9a3a2cb482837a424 (diff)
(llvm up) Convert clang-cc.cpp:GetLanguage to StringSwitch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86608 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/clang-cc/clang-cc.cpp41
1 files changed, 15 insertions, 26 deletions
diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp
index 51a5b4a72d..21265050ee 100644
--- a/tools/clang-cc/clang-cc.cpp
+++ b/tools/clang-cc/clang-cc.cpp
@@ -440,32 +440,21 @@ static LangKind GetLanguage(llvm::StringRef Filename) {
if (BaseLang != langkind_unspecified)
return BaseLang;
- llvm::StringRef Ext = Filename.rsplit('.').second;
- if (Ext == "ast")
- return langkind_ast;
- else if (Ext == "c")
- return langkind_c;
- else if (Ext == "S" || Ext == "s")
- return langkind_asm_cpp;
- else if (Ext == "i")
- return langkind_c_cpp;
- else if (Ext == "ii")
- return langkind_cxx_cpp;
- else if (Ext == "m")
- return langkind_objc;
- else if (Ext == "mi")
- return langkind_objc_cpp;
- else if (Ext == "mm" || Ext == "M")
- return langkind_objcxx;
- else if (Ext == "mii")
- return langkind_objcxx_cpp;
- else if (Ext == "C" || Ext == "cc" || Ext == "cpp" || Ext == "CPP" ||
- Ext == "c++" || Ext == "cp" || Ext == "cxx")
- return langkind_cxx;
- else if (Ext == "cl")
- return langkind_ocl;
- else
- return langkind_c;
+ return llvm::StringSwitch<LangKind>(Filename.rsplit('.').second)
+ .Case("ast", langkind_ast)
+ .Case("c", langkind_c)
+ .Cases("S", "s", langkind_asm_cpp)
+ .Case("i", langkind_c_cpp)
+ .Case("ii", langkind_cxx_cpp)
+ .Case("m", langkind_objc)
+ .Case("mi", langkind_objc_cpp)
+ .Cases("mm", "M", langkind_objcxx)
+ .Case("mii", langkind_objcxx_cpp)
+ .Case("C", langkind_cxx)
+ .Cases("C", "cc", "cp", langkind_cxx)
+ .Cases("cpp", "CPP", "c++", "cxx", langkind_cxx)
+ .Case("cl", langkind_ocl)
+ .Default(langkind_c);
}