]> granicus.if.org Git - clang/commitdiff
(llvm up) Convert clang-cc.cpp:GetLanguage to StringSwitch.
authorDaniel Dunbar <daniel@zuster.org>
Mon, 9 Nov 2009 22:45:47 +0000 (22:45 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 9 Nov 2009 22:45:47 +0000 (22:45 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86608 91177308-0d34-0410-b5e6-96231b3b80d8

tools/clang-cc/clang-cc.cpp

index 51a5b4a72d090a6924df839a5cfb8b2878390aca..21265050ee721e04a38c2f3583822b724f9da79c 100644 (file)
@@ -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);
 }