Path: blob/main/contrib/llvm-project/clang/lib/Frontend/FrontendOptions.cpp
35232 views
//===- FrontendOptions.cpp ------------------------------------------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#include "clang/Frontend/FrontendOptions.h"9#include "clang/Basic/LangStandard.h"10#include "llvm/ADT/StringSwitch.h"1112using namespace clang;1314InputKind FrontendOptions::getInputKindForExtension(StringRef Extension) {15return llvm::StringSwitch<InputKind>(Extension)16.Cases("ast", "pcm", InputKind(Language::Unknown, InputKind::Precompiled))17.Case("c", Language::C)18.Cases("S", "s", Language::Asm)19.Case("i", InputKind(Language::C).getPreprocessed())20.Case("ii", InputKind(Language::CXX).getPreprocessed())21.Case("cui", InputKind(Language::CUDA).getPreprocessed())22.Case("m", Language::ObjC)23.Case("mi", InputKind(Language::ObjC).getPreprocessed())24.Cases("mm", "M", Language::ObjCXX)25.Case("mii", InputKind(Language::ObjCXX).getPreprocessed())26.Cases("C", "cc", "cp", Language::CXX)27.Cases("cpp", "CPP", "c++", "cxx", "hpp", "hxx", Language::CXX)28.Case("cppm", Language::CXX)29.Cases("iim", "iih", InputKind(Language::CXX).getPreprocessed())30.Case("cl", Language::OpenCL)31.Case("clcpp", Language::OpenCLCXX)32.Cases("cu", "cuh", Language::CUDA)33.Case("hip", Language::HIP)34.Cases("ll", "bc", Language::LLVM_IR)35.Case("hlsl", Language::HLSL)36.Case("cir", Language::CIR)37.Default(Language::Unknown);38}394041