[llvm-branch-commits] [clang] [llvm] Enable fexec-charset option (PR #138895)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed May 14 08:16:02 PDT 2025
================
@@ -0,0 +1,36 @@
+//===--- clang/Lex/LiteralConverter.h - Translator for Literals -*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_LEX_LITERALCONVERTER_H
+#define LLVM_CLANG_LEX_LITERALCONVERTER_H
+
+#include "clang/Basic/Diagnostic.h"
+#include "clang/Basic/LangOptions.h"
+#include "clang/Basic/TargetInfo.h"
+#include "llvm/ADT/StringMap.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/CharSet.h"
+
+enum ConversionAction { NoConversion, ToSystemCharset, ToExecCharset };
+
+class LiteralConverter {
+ llvm::StringRef InternalCharset;
+ llvm::StringRef SystemCharset;
+ llvm::StringRef ExecCharset;
+ llvm::StringMap<llvm::CharSetConverter> CharsetConverters;
----------------
cor3ntin wrote:
Let's have a single converter, and think about the pragma later.
(A solution would be to have a stack of them, such that getting to the active one would be a single pointer read... either way, the map is insufficient to implement the pragma, and we don't want to design that pragma now, that PR has enough complexity)
https://github.com/llvm/llvm-project/pull/138895
More information about the llvm-branch-commits
mailing list