[clang] [llvm] Enable fexec-charset option (PR #138895)
Hubert Tong via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 25 22:14:38 PDT 2025
================
@@ -2191,6 +2243,16 @@ void StringLiteralParser::init(ArrayRef<Token> StringToks){
if (CopyStringFragment(StringToks[i], ThisTokBegin, BeforeCRLF))
hadError = true;
+ if (!hadError && Converter) {
+ assert(Kind != tok::wide_string_literal &&
+ "Wide character translation not supported");
+ SmallString<256> CpConv;
+ int ResultLength = BeforeCRLF.size() * CharByteWidth;
+ char *Cp = ResultPtr - ResultLength;
+ Converter->convert(StringRef(Cp, ResultLength), CpConv);
+ memcpy(Cp, CpConv.data(), ResultLength);
----------------
hubert-reinterpretcast wrote:
It can read past the converted buffer too.
https://github.com/llvm/llvm-project/pull/138895
More information about the cfe-commits
mailing list