[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