summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/FrontendOptions.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-11-13 02:06:12 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-11-13 02:06:12 +0000
commit27b19dc1b529f4d8eddf2e8a09bc249c0f33a1fe (patch)
treef350142ed9220f331273a998ce79ce44fa58467e /clang/lib/Frontend/FrontendOptions.cpp
parent3c5571801659ed52e1df40b7b0bc4d8a7e7dc6d7 (diff)
downloadbcm5719-llvm-27b19dc1b529f4d8eddf2e8a09bc249c0f33a1fe.tar.gz
bcm5719-llvm-27b19dc1b529f4d8eddf2e8a09bc249c0f33a1fe.zip
Move input kind identification (-x) into FrontendOptions.
llvm-svn: 87066
Diffstat (limited to 'clang/lib/Frontend/FrontendOptions.cpp')
-rw-r--r--clang/lib/Frontend/FrontendOptions.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/clang/lib/Frontend/FrontendOptions.cpp b/clang/lib/Frontend/FrontendOptions.cpp
new file mode 100644
index 00000000000..96549de3bd6
--- /dev/null
+++ b/clang/lib/Frontend/FrontendOptions.cpp
@@ -0,0 +1,31 @@
+//===--- FrontendOptions.cpp ----------------------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "clang/Frontend/FrontendOptions.h"
+#include "llvm/ADT/StringSwitch.h"
+using namespace clang;
+
+FrontendOptions::InputKind
+FrontendOptions::getInputKindForExtension(llvm::StringRef Extension) {
+ return llvm::StringSwitch<InputKind>(Extension)
+ .Case("ast", IK_AST)
+ .Case("c", IK_C)
+ .Cases("S", "s", IK_Asm)
+ .Case("i", IK_PreprocessedC)
+ .Case("ii", IK_PreprocessedCXX)
+ .Case("m", IK_ObjC)
+ .Case("mi", IK_PreprocessedObjC)
+ .Cases("mm", "M", IK_ObjCXX)
+ .Case("mii", IK_PreprocessedObjCXX)
+ .Case("C", IK_CXX)
+ .Cases("C", "cc", "cp", IK_CXX)
+ .Cases("cpp", "CPP", "c++", "cxx", IK_CXX)
+ .Case("cl", IK_OpenCL)
+ .Default(IK_C);
+}
OpenPOWER on IntegriCloud