[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