clang
23.0.0git
lib
Lex
TextEncoding.cpp
Go to the documentation of this file.
1
//===--- TextEncoding.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/Lex/TextEncoding.h
"
10
#include "
clang/Basic/DiagnosticDriver.h
"
11
12
using namespace
clang
;
13
14
llvm::TextEncodingConverter *
15
TextEncoding::getConverter
(
ConversionAction
Action)
const
{
16
switch
(Action) {
17
case
CA_ToLiteralEncoding
:
18
return
ToLiteralEncodingConverter;
19
default
:
20
return
nullptr
;
21
}
22
}
23
24
std::error_code
25
TextEncoding::setConvertersFromOptions
(
TextEncoding
&TE,
26
const
clang::LangOptions
&Opts) {
27
using namespace
llvm
;
28
29
const
char
*
UTF8
=
"UTF-8"
;
30
TE.LiteralEncoding =
31
Opts.
LiteralEncoding
.empty() ?
UTF8
: Opts.
LiteralEncoding
.c_str();
32
33
// Create converter between internal and literal encoding specified
34
// in fexec-charset option.
35
if
(TE.LiteralEncoding ==
UTF8
)
36
return
std::error_code();
37
ErrorOr<TextEncodingConverter> ErrorOrConverter =
38
llvm::TextEncodingConverter::create(
UTF8
, TE.LiteralEncoding);
39
if
(ErrorOrConverter)
40
TE.ToLiteralEncodingConverter =
41
new
TextEncodingConverter(std::move(*ErrorOrConverter));
42
else
43
return
ErrorOrConverter.getError();
44
return
std::error_code();
45
}
DiagnosticDriver.h
TextEncoding.h
clang::LangOptions
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Definition
LangOptions.h:472
clang::LangOptions::LiteralEncoding
std::string LiteralEncoding
Name of the literal encoding to convert the internal encoding to.
Definition
LangOptions.h:625
clang::TextEncoding
Definition
TextEncoding.h:19
clang::TextEncoding::setConvertersFromOptions
static std::error_code setConvertersFromOptions(TextEncoding &TE, const clang::LangOptions &Opts)
Definition
TextEncoding.cpp:25
clang::TextEncoding::getConverter
llvm::TextEncodingConverter * getConverter(ConversionAction Action) const
Definition
TextEncoding.cpp:15
clang
The JSON file list parser is used to communicate input to InstallAPI.
Definition
CalledOnceCheck.h:17
clang::ConversionAction
ConversionAction
Definition
TextEncoding.h:17
clang::CA_ToLiteralEncoding
@ CA_ToLiteralEncoding
Definition
TextEncoding.h:17
clang::CharacterLiteralKind::UTF8
@ UTF8
Definition
Expr.h:1609
llvm
Diagnostic wrappers for TextAPI types for error reporting.
Definition
Dominators.h:30
Generated on
for clang by
1.14.0