forked from OSchip/llvm-project
33 lines
1.1 KiB
C++
33 lines
1.1 KiB
C++
//===--- 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;
|
|
|
|
InputKind FrontendOptions::getInputKindForExtension(StringRef Extension) {
|
|
return llvm::StringSwitch<InputKind>(Extension)
|
|
.Cases("ast", "pcm", IK_AST)
|
|
.Case("c", IK_C)
|
|
.Cases("S", "s", IK_Asm)
|
|
.Case("i", IK_PreprocessedC)
|
|
.Case("ii", IK_PreprocessedCXX)
|
|
.Case("cui", IK_PreprocessedCuda)
|
|
.Case("m", IK_ObjC)
|
|
.Case("mi", IK_PreprocessedObjC)
|
|
.Cases("mm", "M", IK_ObjCXX)
|
|
.Case("mii", IK_PreprocessedObjCXX)
|
|
.Cases("C", "cc", "cp", IK_CXX)
|
|
.Cases("cpp", "CPP", "c++", "cxx", "hpp", IK_CXX)
|
|
.Case("cl", IK_OpenCL)
|
|
.Case("cu", IK_CUDA)
|
|
.Cases("ll", "bc", IK_LLVM_IR)
|
|
.Default(IK_C);
|
|
}
|