[libcxx-commits] [libcxx] 9bf6e3e - [libcxx] Make test case fmt specifiers more portable

Brian Cain via libcxx-commits libcxx-commits at lists.llvm.org
Tue Mar 1 12:08:29 PST 2022


Author: Brian Cain
Date: 2022-03-01T12:07:23-08:00
New Revision: 9bf6e3e97e3ec91241cfd29030e80baeb9465b2b

URL: https://github.com/llvm/llvm-project/commit/9bf6e3e97e3ec91241cfd29030e80baeb9465b2b
DIFF: https://github.com/llvm/llvm-project/commit/9bf6e3e97e3ec91241cfd29030e80baeb9465b2b.diff

LOG: [libcxx] Make test case fmt specifiers more portable

These printf()s fail to compile like so on hexagon:

.../tools/llvm-top/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp:94:23: error: format specifies type 'unsigned int' but the argument has type 'unsigned long' [-Werror,-Wformat]
        printf("%u ", elem);
                ~~    ^~~~
                %lu
.../tools/llvm-top/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp:569:56: error: format specifies type 'unsigned int' but the argument has type 'uint32_t' (aka 'unsigned long') [-Werror,-Wformat]
        fprintf(stderr, "%s failed for 0x%08X\n", msg, bits);
                                         ~~~~          ^~~~
                                         %08lX
.../tools/llvm-top/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp:1096:43: error: format specifies type 'unsigned int' but the argument has type 'unsigned long' [-Werror,-Wformat]
    printf("Randomized test cases: %u\n", PrefixesToTest * Fractions);
                                   ~~     ^~~~~~~~~~~~~~~~~~~~~~~~~~
                                   %lu

Differential Revision: https://reviews.llvm.org/D120532

Added: 
    

Modified: 
    libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp b/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp
index 6caf27ade7332..ed2bc16a4d455 100644
--- a/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp
+++ b/libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp
@@ -91,7 +91,7 @@ void initialize_randomness(mt19937_64& mt64, const int argc, char** const argv)
 
     puts("SEED DATA:");
     for (const auto& elem : vec) {
-        printf("%u ", elem);
+        printf("%zu ", static_cast<size_t>(elem));
     }
     printf("\n");
 
@@ -566,7 +566,7 @@ void all_integer_tests() {
 
 void assert_message_bits(const bool b, const char* const msg, const uint32_t bits) {
     if (!b) {
-        fprintf(stderr, "%s failed for 0x%08X\n", msg, bits);
+        fprintf(stderr, "%s failed for 0x%08zX\n", msg, static_cast<size_t>(bits));
         fprintf(stderr, "This is a randomized test.\n");
         fprintf(stderr, "DO NOT IGNORE/RERUN THIS FAILURE.\n");
         fprintf(stderr, "You must report it to the STL maintainers.\n");
@@ -1093,7 +1093,7 @@ int main(int argc, char** argv) {
     const long long ms = chrono::duration_cast<chrono::milliseconds>(finish - start).count();
 
     puts("PASS");
-    printf("Randomized test cases: %u\n", PrefixesToTest * Fractions);
+    printf("Randomized test cases: %zu\n", static_cast<size_t>(PrefixesToTest * Fractions));
     printf("Total time: %lld ms\n", ms);
 
     if (ms < 3'000) {


        


More information about the libcxx-commits mailing list