clang
15.0.0git
lib
Frontend
FrontendOptions.cpp
Go to the documentation of this file.
1
//===- FrontendOptions.cpp ------------------------------------------------===//
2
//
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
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "
clang/Frontend/FrontendOptions.h
"
10
#include "
clang/Basic/LangStandard.h
"
11
#include "llvm/ADT/StringSwitch.h"
12
13
using namespace
clang
;
14
15
InputKind
FrontendOptions::getInputKindForExtension
(StringRef Extension) {
16
return
llvm::StringSwitch<InputKind>(Extension)
17
.Cases(
"ast"
,
"pcm"
,
InputKind
(
Language::Unknown
,
InputKind::Precompiled
))
18
.Case(
"c"
,
Language::C
)
19
.Cases(
"S"
,
"s"
,
Language::Asm
)
20
.Case(
"i"
,
InputKind
(
Language::C
).getPreprocessed())
21
.Case(
"ii"
,
InputKind
(
Language::CXX
).getPreprocessed())
22
.Case(
"cui"
,
InputKind
(
Language::CUDA
).getPreprocessed())
23
.Case(
"m"
,
Language::ObjC
)
24
.Case(
"mi"
,
InputKind
(
Language::ObjC
).getPreprocessed())
25
.Cases(
"mm"
,
"M"
,
Language::ObjCXX
)
26
.Case(
"mii"
,
InputKind
(
Language::ObjCXX
).getPreprocessed())
27
.Cases(
"C"
,
"cc"
,
"cp"
,
Language::CXX
)
28
.Cases(
"cpp"
,
"CPP"
,
"c++"
,
"cxx"
,
"hpp"
,
"hxx"
,
Language::CXX
)
29
.Case(
"cppm"
,
Language::CXX
)
30
.Cases(
"iim"
,
"iih"
,
InputKind
(
Language::CXX
).getPreprocessed())
31
.Case(
"cl"
,
Language::OpenCL
)
32
.Case(
"clcpp"
,
Language::OpenCLCXX
)
33
.Cases(
"cu"
,
"cuh"
,
Language::CUDA
)
34
.Case(
"hip"
,
Language::HIP
)
35
.Cases(
"ll"
,
"bc"
,
Language::LLVM_IR
)
36
.Default(
Language::Unknown
);
37
}
clang::Language::CUDA
@ CUDA
clang::Language::OpenCLCXX
@ OpenCLCXX
clang::Language::Asm
@ Asm
Assembly: we accept this only so that we can preprocess it.
clang::InputKind
The kind of a file that we've been handed as an input.
Definition:
FrontendOptions.h:151
clang::FrontendOptions::getInputKindForExtension
static InputKind getInputKindForExtension(StringRef Extension)
getInputKindForExtension - Return the appropriate input kind for a file extension.
Definition:
FrontendOptions.cpp:15
FrontendOptions.h
clang::InputKind::Precompiled
@ Precompiled
Definition:
FrontendOptions.h:164
clang::Language::C
@ C
Languages that the frontend can parse and compile.
LangStandard.h
clang::Language::CXX
@ CXX
clang::Language::ObjCXX
@ ObjCXX
clang::Language::LLVM_IR
@ LLVM_IR
LLVM IR: we accept this so that we can run the optimizer on it, and compile it to assembly or object ...
clang::Language::ObjC
@ ObjC
clang
Definition:
CalledOnceCheck.h:17
clang::Language::Unknown
@ Unknown
clang::Language::HIP
@ HIP
clang::OpenCL
@ OpenCL
Generated on Wed Jun 29 2022 16:37:47 for clang by
1.8.17