[llvm-branch-commits] [clang] [llvm] Enable fexec-charset option (PR #138895)

Eli Friedman via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon May 19 16:58:49 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);
----------------
efriedma-quic wrote:

Can this overflow the buffer?

https://github.com/llvm/llvm-project/pull/138895


More information about the llvm-branch-commits mailing list