|
Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
| #
222dd235 |
| 18-Dec-2024 |
Congcong Cai <congcongcai0907@163.com> |
[clang-tidy] use local config (#120004)
follow up patch for #119948.
|
|
Revision tags: llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2 |
|
| #
a199fb12 |
| 08-Oct-2024 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Only expand <inttypes.h> macros in modernize-use-std-format/print (#97911)
Expanding all macros in the printf/absl::StrFormat format string before
conversion could easily break code if
[clang-tidy] Only expand <inttypes.h> macros in modernize-use-std-format/print (#97911)
Expanding all macros in the printf/absl::StrFormat format string before
conversion could easily break code if those macros are expanded change
their definition between builds. It's important for this check to expand
the <inttypes.h> PRI macros though, so let's ensure that the presence of
any other macros in the format string causes the check to emit a warning
and not perform any conversion.
show more ...
|
|
Revision tags: llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4 |
|
| #
c6207f6e |
| 28-Aug-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Fix c_str() removal and cast addition when re-ordering arguments
The modernize-use-std-print check would get confused if it had to re-order field-width and precision arguments at the sa
[clang-tidy] Fix c_str() removal and cast addition when re-ordering arguments
The modernize-use-std-print check would get confused if it had to re-order field-width and precision arguments at the same time as adding casts or removing calls to c_str().
Fix this by tracking the argument indices and combining c_str() removal with argument re-ordering. Add missing test cases to lit check.
Fixes https://github.com/llvm/llvm-project/issues/64033
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D156616
show more ...
|
|
Revision tags: llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2 |
|
| #
1af159e9 |
| 07-Aug-2023 |
Piotr Zegar <me@piotrzegar.pl> |
[clang-tidy][NFC] Update tests to CheckOptions using new syntax
This patch is just updating all test files to use the new syntax. Fix for changes introduced after D130209 were created.
|
|
Revision tags: llvmorg-17.0.0-rc1, llvmorg-18-init |
|
| #
2ce765eb |
| 11-Jul-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Don't split \r\n in modernize-use-std-print check
When given: printf("Hello\r\n");
it's clearer to leave the CRLF intact and convert this to: std::print("Hello\r\n");
than to remove
[clang-tidy] Don't split \r\n in modernize-use-std-print check
When given: printf("Hello\r\n");
it's clearer to leave the CRLF intact and convert this to: std::print("Hello\r\n");
than to remove the trailing newline and convert it to: std::println("Hello\r");
Update the documentation to match, and clarify the situations for using println vs print which weren't previously explained.
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D154788
show more ...
|
| #
2806cf4b |
| 03-Jul-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Fix width/precision argument order in modernize-use-std-print
Victor Zverovich pointed out[1] that printf takes the field width and precision arguments before the value to be printed wh
[clang-tidy] Fix width/precision argument order in modernize-use-std-print
Victor Zverovich pointed out[1] that printf takes the field width and precision arguments before the value to be printed whereas std::print takes the value first (unless positional arguments are used.) Many of the test cases in use-std-print.cpp were incorrect.
Teach the check to rotate the arguments when required to correct this. Correct the test cases and add more.
[1] https://github.com/fmtlib/fmt/pull/3515#issuecomment-1615259893
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D154283
show more ...
|
| #
09ed2102 |
| 28-Jun-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Fix modernize-use-std-print check when return value used
The initial implementation of the modernize-use-std-print check was capable of converting calls to printf (etc.) which used the
[clang-tidy] Fix modernize-use-std-print check when return value used
The initial implementation of the modernize-use-std-print check was capable of converting calls to printf (etc.) which used the return value to calls to std::print which has no return value, thus breaking the code.
Use code inspired by the implementation of bugprone-unused-return-value check to ignore cases where the return value is used. Add appropriate lit test cases and documentation.
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D153860
show more ...
|
| #
43fa7ea9 |
| 27-Jun-2023 |
Piotr Zegar <me@piotrzegar.pl> |
Revert "[clang-tidy] Fix modernize-use-std-print check when return value used"
This reverts commit 3e12b2e207cfa802937488a2c0b90d482eaf00a9.
|
| #
3e12b2e2 |
| 27-Jun-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Fix modernize-use-std-print check when return value used
The initial implementation of the modernize-use-std-print check was capable of converting calls to printf (etc.) which used the
[clang-tidy] Fix modernize-use-std-print check when return value used
The initial implementation of the modernize-use-std-print check was capable of converting calls to printf (etc.) which used the return value to calls to std::print which has no return value, thus breaking the code.
Use code inspired by the implementation of bugprone-unused-return-value check to ignore cases where the return value is used. Add appropriate lit test cases and documentation.
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D153860
show more ...
|
| #
83f875dc |
| 26-Jun-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Add modernize-printf-to-std-print check
Add FormatStringConverter utility class that is capable of converting printf-style format strings into std::print-style format strings along with
[clang-tidy] Add modernize-printf-to-std-print check
Add FormatStringConverter utility class that is capable of converting printf-style format strings into std::print-style format strings along with recording a set of casts to wrap the arguments as required and removing now-unnecessary calls to std::string::c_str() and std::string::data()
Use FormatStringConverter to implement a new clang-tidy check that is capable of converting calls to printf, fprintf, absl::PrintF, absl::FPrintF, or any functions configured by an option to calls to std::print and std::println, or other functions configured by options.
In other words, the check turns:
fprintf(stderr, "The %s is %3d\n", description.c_str(), value);
into:
std::println(stderr, "The {} is {:3}", description, value);
if it can.
std::print and std::println can do almost anything that standard printf can, but the conversion has some some limitations that are described in the documentation. If conversion is not possible then the call remains unchanged.
Depends on D153716
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D149280
show more ...
|
| #
ec89cb9a |
| 26-Jun-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Add modernize-printf-to-std-print check
Add FormatStringConverter utility class that is capable of converting printf-style format strings into std::print-style format strings along with
[clang-tidy] Add modernize-printf-to-std-print check
Add FormatStringConverter utility class that is capable of converting printf-style format strings into std::print-style format strings along with recording a set of casts to wrap the arguments as required and removing now-unnecessary calls to std::string::c_str() and std::string::data()
Use FormatStringConverter to implement a new clang-tidy check that is capable of converting calls to printf, fprintf, absl::PrintF, absl::FPrintF, or any functions configured by an option to calls to std::print and std::println, or other functions configured by options.
In other words, the check turns:
fprintf(stderr, "The %s is %3d\n", description.c_str(), value);
into:
std::println(stderr, "The {} is {:3}", description, value);
if it can.
std::print and std::println can do almost anything that standard printf can, but the conversion has some some limitations that are described in the documentation. If conversion is not possible then the call remains unchanged.
Depends on D153716
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D149280
show more ...
|
| #
81418ada |
| 25-Jun-2023 |
Mike Crowe <mac@mcrowe.com> |
[clang-tidy] Add modernize-printf-to-std-print check
Add FormatStringConverter utility class that is capable of converting printf-style format strings into std::print-style format strings along with
[clang-tidy] Add modernize-printf-to-std-print check
Add FormatStringConverter utility class that is capable of converting printf-style format strings into std::print-style format strings along with recording a set of casts to wrap the arguments as required and removing now-unnecessary calls to std::string::c_str() and std::string::data()
Use FormatStringConverter to implement a new clang-tidy check that is capable of converting calls to printf, fprintf, absl::PrintF, absl::FPrintF, or any functions configured by an option to calls to std::print and std::println, or other functions configured by options.
In other words, the check turns:
fprintf(stderr, "The %s is %3d\n", description.c_str(), value);
into:
std::println(stderr, "The {} is {:3}", description, value);
if it can.
std::print and std::println can do almost anything that standard printf can, but the conversion has some some limitations that are described in the documentation. If conversion is not possible then the call remains unchanged.
Depends on D153716
Reviewed By: PiotrZSL
Differential Revision: https://reviews.llvm.org/D149280
show more ...
|