From: Roland McGrath Date: Fri, 27 Aug 2021 18:04:19 +0000 (-0700) Subject: [libc] Fix various -Wconversion warnings in strto*l test code. X-Git-Tag: upstream/15.0.7~32820 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4e1a164d7bd53653f79decc121afe784d2fde0a7;p=platform%2Fupstream%2Fllvm.git [libc] Fix various -Wconversion warnings in strto*l test code. The Fuchsia build compiles the libc and test code with lots of warnings enabled, including all the integer conversion warnings. There was some sloppy type usage here that triggered some of those. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D108800 --- diff --git a/libc/test/src/stdlib/strtol_test.cpp b/libc/test/src/stdlib/strtol_test.cpp index b611503..2999763 100644 --- a/libc/test/src/stdlib/strtol_test.cpp +++ b/libc/test/src/stdlib/strtol_test.cpp @@ -149,19 +149,19 @@ static char int_to_b36_char(int input) { if (input < 0 || input > 36) return '0'; if (input < 10) - return '0' + input; - return 'A' + input - 10; + return static_cast('0' + input); + return static_cast('A' + input - 10); } TEST(LlvmLibcStrToLTest, DecodeInOtherBases) { char small_string[4] = {'\0', '\0', '\0', '\0'}; - for (long base = 2; base <= 36; ++base) { - for (long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtol(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -171,20 +171,20 @@ TEST(LlvmLibcStrToLTest, DecodeInOtherBases) { } } - for (long base = 2; base <= 36; ++base) { - for (long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (long second_digit = 0; second_digit <= 36; ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); if (first_digit < base && second_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtol(small_string, nullptr, base), - second_digit + (first_digit * base)); + static_cast(second_digit + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtol(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -195,24 +195,26 @@ TEST(LlvmLibcStrToLTest, DecodeInOtherBases) { } } - for (long base = 2; base <= 36; ++base) { - for (long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (long second_digit = 0; second_digit <= 36; ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); - for (long third_digit = 0; third_digit <= 36; ++third_digit) { + for (int third_digit = 0; third_digit <= 36; ++third_digit) { small_string[2] = int_to_b36_char(third_digit); if (first_digit < base && second_digit < base && third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtol(small_string, nullptr, base), - third_digit + (second_digit * base) + - (first_digit * base * base)); + static_cast(third_digit + + (second_digit * base) + + (first_digit * base * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base && second_digit < base) { errno = 0; - ASSERT_EQ(__llvm_libc::strtol(small_string, nullptr, base), - second_digit + (first_digit * base)); + ASSERT_EQ( + __llvm_libc::strtol(small_string, nullptr, base), + static_cast(second_digit + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { // if the base is 16 there is a special case for the prefix 0X. @@ -221,7 +223,7 @@ TEST(LlvmLibcStrToLTest, DecodeInOtherBases) { if (third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtol(small_string, nullptr, base), - third_digit); + static_cast(third_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -231,7 +233,7 @@ TEST(LlvmLibcStrToLTest, DecodeInOtherBases) { } else { errno = 0; ASSERT_EQ(__llvm_libc::strtol(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } } else { diff --git a/libc/test/src/stdlib/strtoll_test.cpp b/libc/test/src/stdlib/strtoll_test.cpp index f46524b..8e3ce85 100644 --- a/libc/test/src/stdlib/strtoll_test.cpp +++ b/libc/test/src/stdlib/strtoll_test.cpp @@ -173,19 +173,19 @@ static char int_to_b36_char(int input) { if (input < 0 || input > 36) return '0'; if (input < 10) - return '0' + input; - return 'A' + input - 10; + return static_cast('0' + input); + return static_cast('A' + input - 10); } TEST(LlvmLibcStrToLLTest, DecodeInOtherBases) { char small_string[4] = {'\0', '\0', '\0', '\0'}; - for (long long base = 2; base <= 36; ++base) { - for (long long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoll(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -195,20 +195,21 @@ TEST(LlvmLibcStrToLLTest, DecodeInOtherBases) { } } - for (long long base = 2; base <= 36; ++base) { - for (long long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (long long second_digit = 0; second_digit <= 36; ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); if (first_digit < base && second_digit < base) { errno = 0; - ASSERT_EQ(__llvm_libc::strtoll(small_string, nullptr, base), - second_digit + (first_digit * base)); + ASSERT_EQ( + __llvm_libc::strtoll(small_string, nullptr, base), + static_cast(second_digit + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoll(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -219,24 +220,26 @@ TEST(LlvmLibcStrToLLTest, DecodeInOtherBases) { } } - for (long long base = 2; base <= 36; ++base) { - for (long long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (long long second_digit = 0; second_digit <= 36; ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); - for (long long third_digit = 0; third_digit <= 36; ++third_digit) { + for (int third_digit = 0; third_digit <= 36; ++third_digit) { small_string[2] = int_to_b36_char(third_digit); if (first_digit < base && second_digit < base && third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoll(small_string, nullptr, base), - third_digit + (second_digit * base) + - (first_digit * base * base)); + static_cast(third_digit + + (second_digit * base) + + (first_digit * base * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base && second_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoll(small_string, nullptr, base), - second_digit + (first_digit * base)); + static_cast(second_digit + + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { // if the base is 16 there is a special case for the prefix 0X. @@ -245,7 +248,7 @@ TEST(LlvmLibcStrToLLTest, DecodeInOtherBases) { if (third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoll(small_string, nullptr, base), - third_digit); + static_cast(third_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -256,7 +259,7 @@ TEST(LlvmLibcStrToLLTest, DecodeInOtherBases) { } else { errno = 0; ASSERT_EQ(__llvm_libc::strtoll(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } } else { diff --git a/libc/test/src/stdlib/strtoul_test.cpp b/libc/test/src/stdlib/strtoul_test.cpp index e59ef2e..16ca6b0 100644 --- a/libc/test/src/stdlib/strtoul_test.cpp +++ b/libc/test/src/stdlib/strtoul_test.cpp @@ -8,12 +8,12 @@ #include "src/stdlib/strtoul.h" -#include "utils/UnitTest/Test.h" - #include #include #include +#include "utils/UnitTest/Test.h" + TEST(LlvmLibcStrToULTest, InvalidBase) { const char *ten = "10"; errno = 0; @@ -141,19 +141,19 @@ static char int_to_b36_char(int input) { if (input < 0 || input > 36) return '0'; if (input < 10) - return '0' + input; - return 'A' + input - 10; + return static_cast('0' + input); + return static_cast('A' + input - 10); } TEST(LlvmLibcStrToULTest, DecodeInOtherBases) { char small_string[4] = {'\0', '\0', '\0', '\0'}; - for (unsigned long base = 2; base <= 36; ++base) { - for (unsigned long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoul(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -163,20 +163,21 @@ TEST(LlvmLibcStrToULTest, DecodeInOtherBases) { } } - for (unsigned long base = 2; base <= 36; ++base) { - for (unsigned long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (unsigned long second_digit = 0; second_digit <= 36; ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); if (first_digit < base && second_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoul(small_string, nullptr, base), - second_digit + (first_digit * base)); + static_cast(second_digit + + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoul(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -187,24 +188,26 @@ TEST(LlvmLibcStrToULTest, DecodeInOtherBases) { } } - for (unsigned long base = 2; base <= 36; ++base) { - for (unsigned long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (unsigned long second_digit = 0; second_digit <= 36; ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); - for (unsigned long third_digit = 0; third_digit <= 36; ++third_digit) { + for (int third_digit = 0; third_digit <= 36; ++third_digit) { small_string[2] = int_to_b36_char(third_digit); if (first_digit < base && second_digit < base && third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoul(small_string, nullptr, base), - third_digit + (second_digit * base) + - (first_digit * base * base)); + static_cast( + third_digit + (second_digit * base) + + (first_digit * base * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base && second_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoul(small_string, nullptr, base), - second_digit + (first_digit * base)); + static_cast(second_digit + + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { // if the base is 16 there is a special case for the prefix 0X. @@ -213,7 +216,7 @@ TEST(LlvmLibcStrToULTest, DecodeInOtherBases) { if (third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoul(small_string, nullptr, base), - third_digit); + static_cast(third_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; diff --git a/libc/test/src/stdlib/strtoull_test.cpp b/libc/test/src/stdlib/strtoull_test.cpp index 2dc7872..8a2ca11 100644 --- a/libc/test/src/stdlib/strtoull_test.cpp +++ b/libc/test/src/stdlib/strtoull_test.cpp @@ -8,12 +8,12 @@ #include "src/stdlib/strtoull.h" -#include "utils/UnitTest/Test.h" - #include #include #include +#include "utils/UnitTest/Test.h" + TEST(LlvmLibcStrToULLTest, InvalidBase) { const char *ten = "10"; errno = 0; @@ -149,19 +149,19 @@ static char int_to_b36_char(int input) { if (input < 0 || input > 36) return '0'; if (input < 10) - return '0' + input; - return 'A' + input - 10; + return static_cast('0' + input); + return static_cast('A' + input - 10); } TEST(LlvmLibcStrToULLTest, DecodeInOtherBases) { char small_string[4] = {'\0', '\0', '\0', '\0'}; - for (unsigned long long base = 2; base <= 36; ++base) { - for (unsigned long long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoull(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -171,21 +171,21 @@ TEST(LlvmLibcStrToULLTest, DecodeInOtherBases) { } } - for (unsigned long long base = 2; base <= 36; ++base) { - for (unsigned long long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (unsigned long long second_digit = 0; second_digit <= 36; - ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); if (first_digit < base && second_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoull(small_string, nullptr, base), - second_digit + (first_digit * base)); + static_cast(second_digit + + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoull(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -196,26 +196,26 @@ TEST(LlvmLibcStrToULLTest, DecodeInOtherBases) { } } - for (unsigned long long base = 2; base <= 36; ++base) { - for (unsigned long long first_digit = 0; first_digit <= 36; ++first_digit) { + for (int base = 2; base <= 36; ++base) { + for (int first_digit = 0; first_digit <= 36; ++first_digit) { small_string[0] = int_to_b36_char(first_digit); - for (unsigned long long second_digit = 0; second_digit <= 36; - ++second_digit) { + for (int second_digit = 0; second_digit <= 36; ++second_digit) { small_string[1] = int_to_b36_char(second_digit); - for (unsigned long long third_digit = 0; third_digit <= 36; - ++third_digit) { + for (int third_digit = 0; third_digit <= 36; ++third_digit) { small_string[2] = int_to_b36_char(third_digit); if (first_digit < base && second_digit < base && third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoull(small_string, nullptr, base), - third_digit + (second_digit * base) + - (first_digit * base * base)); + static_cast( + third_digit + (second_digit * base) + + (first_digit * base * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base && second_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoull(small_string, nullptr, base), - second_digit + (first_digit * base)); + static_cast( + second_digit + (first_digit * base))); ASSERT_EQ(errno, 0); } else if (first_digit < base) { // if the base is 16 there is a special case for the prefix 0X. @@ -224,7 +224,7 @@ TEST(LlvmLibcStrToULLTest, DecodeInOtherBases) { if (third_digit < base) { errno = 0; ASSERT_EQ(__llvm_libc::strtoull(small_string, nullptr, base), - third_digit); + static_cast(third_digit)); ASSERT_EQ(errno, 0); } else { errno = 0; @@ -235,7 +235,7 @@ TEST(LlvmLibcStrToULLTest, DecodeInOtherBases) { } else { errno = 0; ASSERT_EQ(__llvm_libc::strtoull(small_string, nullptr, base), - first_digit); + static_cast(first_digit)); ASSERT_EQ(errno, 0); } } else {