From d9251171f5a42eaf993395e7ef127546af5814b0 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 31 Jan 2023 11:36:17 -0800 Subject: [PATCH] Fix sign conversion warning from clang: googletest/samples/prime_tables.h:81:57: error: implicit conversion changes signedness: 'int' to 'unsigned long' [-Werror,-Wsign-conversion] : is_prime_size_(max + 1), is_prime_(new bool[max + 1]) { ~~~ ~~~~^~~ PiperOrigin-RevId: 506065360 Change-Id: Ida4550562531012c089e2f9fcf530b3a78889fa3 --- googletest/samples/prime_tables.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/googletest/samples/prime_tables.h b/googletest/samples/prime_tables.h index 7c0286e1..08ad9493 100644 --- a/googletest/samples/prime_tables.h +++ b/googletest/samples/prime_tables.h @@ -78,8 +78,9 @@ class PreCalculatedPrimeTable : public PrimeTable { public: // 'max' specifies the maximum number the prime table holds. explicit PreCalculatedPrimeTable(int max) - : is_prime_size_(max + 1), is_prime_(new bool[max + 1]) { - CalculatePrimesUpTo(max); + : is_prime_size_(std::max(1, max + 1)), + is_prime_(new bool[static_cast(is_prime_size_)]) { + CalculatePrimesUpTo(is_prime_size_ - 1); } ~PreCalculatedPrimeTable() override { delete[] is_prime_; }