[llvm-branch-commits] [clang-tools-extra] 5fccb47 - Revert "[clang-tidy] Fix OOB access in `FormatStringConverter` with signed ch…"
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Nov 28 23:45:38 PST 2025
Author: mitchell
Date: 2025-11-29T15:45:34+08:00
New Revision: 5fccb47c046a3c5e91c5e4ae4e95c8316773895a
URL: https://github.com/llvm/llvm-project/commit/5fccb47c046a3c5e91c5e4ae4e95c8316773895a
DIFF: https://github.com/llvm/llvm-project/commit/5fccb47c046a3c5e91c5e4ae4e95c8316773895a.diff
LOG: Revert "[clang-tidy] Fix OOB access in `FormatStringConverter` with signed ch…"
This reverts commit 5dd2b06d60d3eb9b07c7513358ad8b04386f79bc.
Added:
Modified:
clang-tools-extra/clang-tidy/utils/FormatStringConverter.cpp
clang-tools-extra/docs/ReleaseNotes.rst
clang-tools-extra/test/clang-tidy/check_clang_tidy.py
clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/utils/FormatStringConverter.cpp b/clang-tools-extra/clang-tidy/utils/FormatStringConverter.cpp
index d210b000dfd33..23dae04916e9b 100644
--- a/clang-tools-extra/clang-tidy/utils/FormatStringConverter.cpp
+++ b/clang-tools-extra/clang-tidy/utils/FormatStringConverter.cpp
@@ -700,7 +700,6 @@ void FormatStringConverter::finalizeFormatText() {
/// Append literal parts of the format text, reinstating escapes as required.
void FormatStringConverter::appendFormatText(const StringRef Text) {
for (const char Ch : Text) {
- const auto UCh = static_cast<unsigned char>(Ch);
if (Ch == '\a')
StandardFormatString += "\\a";
else if (Ch == '\b')
@@ -725,10 +724,10 @@ void FormatStringConverter::appendFormatText(const StringRef Text) {
} else if (Ch == '}') {
StandardFormatString += "}}";
FormatStringNeededRewriting = true;
- } else if (UCh < 32) {
+ } else if (Ch < 32) {
StandardFormatString += "\\x";
- StandardFormatString += llvm::hexdigit(UCh >> 4, true);
- StandardFormatString += llvm::hexdigit(UCh & 0xf, true);
+ StandardFormatString += llvm::hexdigit(Ch >> 4, true);
+ StandardFormatString += llvm::hexdigit(Ch & 0xf, true);
} else
StandardFormatString += Ch;
}
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 644c5cb573cf7..a6f80e3721db1 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -69,7 +69,7 @@ Potentially Breaking Changes
- `CharTypdefsToIgnore` to `CharTypedefsToIgnore` in
:doc:`bugprone-signed-char-misuse
<clang-tidy/checks/bugprone/signed-char-misuse>`
-
+
- Modified the custom message format of :doc:`bugprone-unsafe-functions
<clang-tidy/checks/bugprone/unsafe-functions>` by assigning a special meaning
to the character ``>`` at the start of the value of the option
@@ -394,7 +394,7 @@ Changes in existing checks
<clang-tidy/checks/bugprone/unhandled-self-assignment>` check by adding
an additional matcher that generalizes the copy-and-swap idiom pattern
detection.
-
+
- Improved :doc:`bugprone-unsafe-functions
<clang-tidy/checks/bugprone/unsafe-functions>` check by hiding the default
suffix when the reason starts with the character `>` in the `CustomFunctions`
@@ -497,8 +497,7 @@ Changes in existing checks
- Improved :doc:`modernize-use-std-print
<clang-tidy/checks/modernize/use-std-print>` check to correctly match
when the format string is converted to a
diff erent type by an implicit
- constructor call, and fixed a crash when handling format strings
- containing non-ASCII characters.
+ constructor call.
- Improved :doc:`performance-unnecessary-copy-initialization
<clang-tidy/checks/performance/unnecessary-copy-initialization>` by printing
diff --git a/clang-tools-extra/test/clang-tidy/check_clang_tidy.py b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
index b173ecf4fbdca..183b33f135be8 100755
--- a/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
+++ b/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
@@ -398,8 +398,6 @@ def parse_arguments() -> Tuple[argparse.Namespace, List[str]]:
def main() -> None:
- sys.stdout.reconfigure(encoding="utf-8")
- sys.stderr.reconfigure(encoding="utf-8")
args, extra_args = parse_arguments()
abbreviated_stds = args.std
diff --git a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
index 63972cc0fd25e..ec37f077df7fc 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/modernize/use-std-print.cpp
@@ -54,12 +54,6 @@ void printf_deceptive_newline() {
// CHECK-FIXES: std::println("Hello");
}
-void printf_utf8_text() {
- printf("你好世界\n");
- // CHECK-MESSAGES: [[@LINE-1]]:3: warning: use 'std::println' instead of 'printf' [modernize-use-std-print]
- // CHECK-FIXES: std::println("你好世界");
-}
-
void printf_crlf_newline() {
printf("Hello\r\n");
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: use 'std::print' instead of 'printf' [modernize-use-std-print]
@@ -309,12 +303,6 @@ void fprintf_simple() {
// CHECK-FIXES: std::print(stderr, "Hello");
}
-void fprintf_utf8_text() {
- fprintf(stderr, "你好世界\n");
- // CHECK-MESSAGES: [[@LINE-1]]:3: warning: use 'std::println' instead of 'fprintf' [modernize-use-std-print]
- // CHECK-FIXES: std::println(stderr, "你好世界");
-}
-
void std_printf_simple() {
std::printf("std::Hello");
// CHECK-MESSAGES: [[@LINE-1]]:3: warning: use 'std::print' instead of 'printf' [modernize-use-std-print]
More information about the llvm-branch-commits
mailing list