Eugene Zelenko | 44357ee | 2018-03-26 21:45:04 +0000 | [diff] [blame] | 1 | //===- FrontendOptions.cpp ------------------------------------------------===// |
Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 2 | // |
Chandler Carruth | 2946cd7 | 2019-01-19 08:50:56 +0000 | [diff] [blame^] | 3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | // See https://llvm.org/LICENSE.txt for license information. |
| 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 6 | // |
| 7 | //===----------------------------------------------------------------------===// |
| 8 | |
| 9 | #include "clang/Frontend/FrontendOptions.h" |
| 10 | #include "llvm/ADT/StringSwitch.h" |
Eugene Zelenko | 44357ee | 2018-03-26 21:45:04 +0000 | [diff] [blame] | 11 | |
Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 12 | using namespace clang; |
| 13 | |
Chris Lattner | 0e62c1c | 2011-07-23 10:55:15 +0000 | [diff] [blame] | 14 | InputKind FrontendOptions::getInputKindForExtension(StringRef Extension) { |
Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 15 | return llvm::StringSwitch<InputKind>(Extension) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 16 | .Cases("ast", "pcm", InputKind(InputKind::Unknown, InputKind::Precompiled)) |
| 17 | .Case("c", InputKind::C) |
| 18 | .Cases("S", "s", InputKind::Asm) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 19 | .Case("i", InputKind(InputKind::C).getPreprocessed()) |
| 20 | .Case("ii", InputKind(InputKind::CXX).getPreprocessed()) |
| 21 | .Case("cui", InputKind(InputKind::CUDA).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 22 | .Case("m", InputKind::ObjC) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 23 | .Case("mi", InputKind(InputKind::ObjC).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 24 | .Cases("mm", "M", InputKind::ObjCXX) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 25 | .Case("mii", InputKind(InputKind::ObjCXX).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 26 | .Cases("C", "cc", "cp", InputKind::CXX) |
| 27 | .Cases("cpp", "CPP", "c++", "cxx", "hpp", InputKind::CXX) |
| 28 | .Case("cppm", InputKind::CXX) |
Richard Smith | f74d946 | 2017-04-28 01:49:42 +0000 | [diff] [blame] | 29 | .Case("iim", InputKind(InputKind::CXX).getPreprocessed()) |
Richard Smith | 40c0efa | 2017-04-26 18:57:40 +0000 | [diff] [blame] | 30 | .Case("cl", InputKind::OpenCL) |
| 31 | .Case("cu", InputKind::CUDA) |
| 32 | .Cases("ll", "bc", InputKind::LLVM_IR) |
| 33 | .Default(InputKind::Unknown); |
Daniel Dunbar | 27b19dc | 2009-11-13 02:06:12 +0000 | [diff] [blame] | 34 | } |