[clang] Change ToLiteralEncodingConverter to a unique_ptr (PR #207258)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 2 12:12:57 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Abhina Sree (abhina-sree)

<details>
<summary>Changes</summary>

This patch is to fix the test regressions seen here https://lab.llvm.org/buildbot/#/builders/55/builds/29895/steps/11/logs/stdio

```
********************
Testing:  0..
FAIL: Clang :: CodeGen/systemz-charset.c (9847 of 100115)
******************** TEST 'Clang :: CodeGen/systemz-charset.c' FAILED ********************
Exit Code: -6
Command Output (stdout):
--
# RUN: at line 1
/home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm_build_hwasan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm_build_hwasan/lib/clang/23/include -nostdsysteminc /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm-project/clang/test/CodeGen/systemz-charset.c -emit-llvm -triple s390x-none-zos -fexec-charset IBM-1047 -o - | /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm_build_hwasan/bin/FileCheck /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm-project/clang/test/CodeGen/systemz-charset.c
# executed command: /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm_build_hwasan/bin/clang -cc1 -internal-isystem /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm_build_hwasan/lib/clang/23/include -nostdsysteminc /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm-project/clang/test/CodeGen/systemz-charset.c -emit-llvm -triple s390x-none-zos -fexec-charset IBM-1047 -o -
# .---command stderr------------
# | /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm-project/clang/test/CodeGen/systemz-charset.c:24:30: warning: unknown escape sequence '\y' [-Wunknown-escape-sequence]
# |    24 | const char *InvalidEscape = "\y\z";
# |       |                              ^~
# | /home/b/sanitizer-aarch64-linux-bootstrap-hwasan/build/llvm-project/clang/test/CodeGen/systemz-charset.c:24:32: warning: unknown escape sequence '\z' [-Wunknown-escape-sequence]
# |    24 | const char *InvalidEscape = "\y\z";
# |       |                                ^~
# | 2 warnings generated.
# | libc++abi: Pure virtual function called!
# `-----------------------------
```

---
Full diff: https://github.com/llvm/llvm-project/pull/207258.diff


2 Files Affected:

- (modified) clang/include/clang/Lex/TextEncoding.h (+1-1) 
- (modified) clang/lib/Lex/TextEncoding.cpp (+2-2) 


``````````diff
diff --git a/clang/include/clang/Lex/TextEncoding.h b/clang/include/clang/Lex/TextEncoding.h
index c892d1fadbc38..e8f3094233751 100644
--- a/clang/include/clang/Lex/TextEncoding.h
+++ b/clang/include/clang/Lex/TextEncoding.h
@@ -17,7 +17,7 @@ enum ConversionAction { CA_NoConversion, CA_ToLiteralEncoding };
 
 class TextEncoding {
   llvm::StringRef LiteralEncoding;
-  llvm::TextEncodingConverter *ToLiteralEncodingConverter = nullptr;
+  std::unique_ptr<llvm::TextEncodingConverter> ToLiteralEncodingConverter;
 
 public:
   llvm::TextEncodingConverter *getConverter(ConversionAction Action) const;
diff --git a/clang/lib/Lex/TextEncoding.cpp b/clang/lib/Lex/TextEncoding.cpp
index c90ef155f1bd6..5cb062ab87f8f 100644
--- a/clang/lib/Lex/TextEncoding.cpp
+++ b/clang/lib/Lex/TextEncoding.cpp
@@ -13,7 +13,7 @@ llvm::TextEncodingConverter *
 TextEncoding::getConverter(ConversionAction Action) const {
   switch (Action) {
   case CA_ToLiteralEncoding:
-    return ToLiteralEncodingConverter;
+    return ToLiteralEncodingConverter.get();
   default:
     return nullptr;
   }
@@ -36,7 +36,7 @@ TextEncoding::setConvertersFromOptions(TextEncoding &TE,
       llvm::TextEncodingConverter::create(UTF8, TE.LiteralEncoding);
   if (ErrorOrConverter)
     TE.ToLiteralEncodingConverter =
-        new TextEncodingConverter(std::move(*ErrorOrConverter));
+        std::make_unique<TextEncodingConverter>(std::move(*ErrorOrConverter));
   else
     return ErrorOrConverter.getError();
   return std::error_code();

``````````

</details>


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


More information about the cfe-commits mailing list