tags 1091157 patch thanks I'm attaching a patch that fixes the issue. Build tested on arm64 unstable.
Separately fixing the issue upstream via a pull request.
diff --git a/test/test_bit_stream.cpp b/test/test_bit_stream.cpp index c0cbd251..9aee68a9 100644 --- a/test/test_bit_stream.cpp +++ b/test/test_bit_stream.cpp @@ -930,8 +930,8 @@ namespace //************************************************************************* TEST(put_get_multiple_variable_size) { - char c1 = 26; // 6 bits - char c2 = -10; // 7 bits + signed char c1 = 26; // 6 bits + signed char c2 = -10; // 7 bits unsigned short s1 = 6742; // 13 bits unsigned short s2 = 1878; // 11 bits int32_t i1 = 2448037L; // 23 bits @@ -983,8 +983,8 @@ namespace bit_stream.restart(); - char rc1; - char rc2; + signed char rc1; + signed char rc2; unsigned short rs1; unsigned short rs2; int32_t ri1; diff --git a/test/test_bit_stream_reader_big_endian.cpp b/test/test_bit_stream_reader_big_endian.cpp index 4cdf3d29..c4ae014c 100644 --- a/test/test_bit_stream_reader_big_endian.cpp +++ b/test/test_bit_stream_reader_big_endian.cpp @@ -210,7 +210,7 @@ namespace TEST(test_read_int8_t) { std::array<char, 4U> storage = { char(0x01), char(0x5A), char(0xA5), char(0xFF) }; - std::array<char, 4U> expected = { int8_t(0x01), int8_t(0x5A), int8_t(0xA5), int8_t(0xFF) }; + std::array<signed char, 4U> expected = { int8_t(0x01), int8_t(0x5A), int8_t(0xA5), int8_t(0xFF) }; etl::bit_stream_reader bit_stream(storage.data(), storage.size(), etl::endian::big); @@ -246,7 +246,7 @@ namespace TEST(test_read_checked_int8_t_using_non_member_function) { std::array<char, 4U> storage = { char(0x01), char(0x5A), char(0xA5), char(0xFF) }; - std::array<char, 4U> expected = { int8_t(0x01), int8_t(0x5A), int8_t(0xA5), int8_t(0xFF) }; + std::array<signed char, 4U> expected = { int8_t(0x01), int8_t(0x5A), int8_t(0xA5), int8_t(0xFF) }; etl::bit_stream_reader bit_stream(storage.data(), storage.size(), etl::endian::big); @@ -282,7 +282,7 @@ namespace TEST(test_read_unchecked_int8_t_using_non_member_function) { std::array<char, 4U> storage = { char(0x01), char(0x5A), char(0xA5), char(0xFF) }; - std::array<char, 4U> expected = { int8_t(0x01), int8_t(0x5A), int8_t(0xA5), int8_t(0xFF) }; + std::array<signed char, 4U> expected = { int8_t(0x01), int8_t(0x5A), int8_t(0xA5), int8_t(0xFF) }; etl::bit_stream_reader bit_stream(storage.data(), storage.size(), etl::endian::big); @@ -307,7 +307,7 @@ namespace TEST(test_read_int8_t_5bits) { std::array<char, 3U> storage = { char(0x0E), char(0x8B), char(0xF0) }; - std::array<char, 4U> expected = { int8_t(0x01), int8_t(0xFA), int8_t(0x05), int8_t(0xFF) }; + std::array<signed char, 4U> expected = { int8_t(0x01), int8_t(0xFA), int8_t(0x05), int8_t(0xFF) }; etl::bit_stream_reader bit_stream(storage.data(), storage.size(), etl::endian::big); diff --git a/test/test_bresenham_line.cpp b/test/test_bresenham_line.cpp index 96f5e231..eeb85239 100644 --- a/test/test_bresenham_line.cpp +++ b/test/test_bresenham_line.cpp @@ -44,7 +44,7 @@ namespace etl namespace { - using Value = char; + using Value = signed char; using Point = etl::coordinate_2d<Value>; diff --git a/test/test_correlation.cpp b/test/test_correlation.cpp index 82f2d032..72381c77 100644 --- a/test/test_correlation.cpp +++ b/test/test_correlation.cpp @@ -34,17 +34,17 @@ SOFTWARE. namespace { - std::array<char, 10> input_c + std::array<signed char, 10> input_c { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - std::array<char, 10> input_c_flat + std::array<signed char, 10> input_c_flat { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - std::array<char, 10> input_c_inv + std::array<signed char, 10> input_c_inv { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9 }; @@ -86,7 +86,7 @@ namespace //************************************************************************* TEST(test_char_correlation_default_constructor) { - etl::correlation<etl::correlation_type::Population, char, int32_t> correlation; + etl::correlation<etl::correlation_type::Population, signed char, int32_t> correlation; double correlation_result = correlation; @@ -120,21 +120,21 @@ namespace double covariance_result; // Negative correlation. - etl::correlation<etl::correlation_type::Population, char, int32_t> correlation1(input_c.begin(), input_c.end(), input_c_inv.begin()); + etl::correlation<etl::correlation_type::Population, signed char, int32_t> correlation1(input_c.begin(), input_c.end(), input_c_inv.begin()); correlation_result = correlation1; CHECK_CLOSE(-1.0, correlation_result, 0.1); covariance_result = correlation1.get_covariance(); CHECK_CLOSE(-8.25, covariance_result, 0.1); // Zero correlation - etl::correlation<etl::correlation_type::Population, char, int32_t> correlation2(input_c.begin(), input_c.end(), input_c_flat.begin()); + etl::correlation<etl::correlation_type::Population, signed char, int32_t> correlation2(input_c.begin(), input_c.end(), input_c_flat.begin()); correlation_result = correlation2; CHECK_CLOSE(0.0, correlation_result, 0.1); covariance_result = correlation2.get_covariance(); CHECK_CLOSE(0.0, covariance_result, 0.1); // Positive correlation. - etl::correlation<etl::correlation_type::Population, char, int32_t> correlation3(input_c.begin(), input_c.end(), input_c.begin()); + etl::correlation<etl::correlation_type::Population, signed char, int32_t> correlation3(input_c.begin(), input_c.end(), input_c.begin()); correlation_result = correlation3; CHECK_CLOSE(1.0, correlation_result, 0.1); covariance_result = correlation3.get_covariance(); @@ -148,21 +148,21 @@ namespace double covariance_result; // Negative correlation. - etl::correlation<etl::correlation_type::Sample, char, int32_t> correlation1(input_c.begin(), input_c.end(), input_c_inv.begin()); + etl::correlation<etl::correlation_type::Sample, signed char, int32_t> correlation1(input_c.begin(), input_c.end(), input_c_inv.begin()); correlation_result = correlation1; CHECK_CLOSE(-1.0, correlation_result, 0.1); covariance_result = correlation1.get_covariance(); CHECK_CLOSE(-9.17, covariance_result, 0.1); // Zero correlation - etl::correlation<etl::correlation_type::Sample, char, int32_t> correlation2(input_c.begin(), input_c.end(), input_c_flat.begin()); + etl::correlation<etl::correlation_type::Sample, signed char, int32_t> correlation2(input_c.begin(), input_c.end(), input_c_flat.begin()); correlation_result = correlation2; CHECK_CLOSE(0.0, correlation_result, 0.1); covariance_result = correlation2.get_covariance(); CHECK_CLOSE(0.0, covariance_result, 0.1); // Positive correlation. - etl::correlation<etl::correlation_type::Sample, char, int32_t> correlation3(input_c.begin(), input_c.end(), input_c.begin()); + etl::correlation<etl::correlation_type::Sample, signed char, int32_t> correlation3(input_c.begin(), input_c.end(), input_c.begin()); correlation_result = correlation3; CHECK_CLOSE(1.0, correlation_result, 0.1); covariance_result = correlation3.get_covariance(); diff --git a/test/test_covariance.cpp b/test/test_covariance.cpp index a127616c..a3b67a9d 100644 --- a/test/test_covariance.cpp +++ b/test/test_covariance.cpp @@ -34,17 +34,17 @@ SOFTWARE. namespace { - std::array<char, 10> input_c + std::array<signed char, 10> input_c { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - std::array<char, 10> input_c_flat + std::array<signed char, 10> input_c_flat { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - std::array<char, 10> input_c_inv + std::array<signed char, 10> input_c_inv { 0, -1, -2, -3, -4, -5, -6, -7, -8, -9 }; @@ -86,7 +86,7 @@ namespace //************************************************************************* TEST(test_char_covariance_default_constructor) { - etl::covariance<etl::covariance_type::Population, char, int32_t> covariance; + etl::covariance<etl::covariance_type::Population, signed char, int32_t> covariance; double covariance_result = covariance; @@ -119,17 +119,17 @@ namespace double covariance_result; // Negative covariance. - etl::covariance<etl::covariance_type::Population, char, int32_t> covariance1(input_c.begin(), input_c.end(), input_c_inv.begin()); + etl::covariance<etl::covariance_type::Population, signed char, int32_t> covariance1(input_c.begin(), input_c.end(), input_c_inv.begin()); covariance_result = covariance1.get_covariance(); CHECK_CLOSE(-8.25, covariance_result, 0.1); // Zero covariance - etl::covariance<etl::covariance_type::Population, char, int32_t> covariance2(input_c.begin(), input_c.end(), input_c_flat.begin()); + etl::covariance<etl::covariance_type::Population, signed char, int32_t> covariance2(input_c.begin(), input_c.end(), input_c_flat.begin()); covariance_result = covariance2.get_covariance(); CHECK_CLOSE(0.0, covariance_result, 0.1); // Positive covariance. - etl::covariance<etl::covariance_type::Population, char, int32_t> covariance3(input_c.begin(), input_c.end(), input_c.begin()); + etl::covariance<etl::covariance_type::Population, signed char, int32_t> covariance3(input_c.begin(), input_c.end(), input_c.begin()); covariance_result = covariance3.get_covariance(); CHECK_CLOSE(8.25, covariance_result, 0.1); } @@ -140,17 +140,17 @@ namespace double covariance_result; // Negative covariance. - etl::covariance<etl::covariance_type::Sample, char, int32_t> covariance1(input_c.begin(), input_c.end(), input_c_inv.begin()); + etl::covariance<etl::covariance_type::Sample, signed char, int32_t> covariance1(input_c.begin(), input_c.end(), input_c_inv.begin()); covariance_result = covariance1.get_covariance(); CHECK_CLOSE(-9.17, covariance_result, 0.1); // Zero covariance - etl::covariance<etl::covariance_type::Sample, char, int32_t> covariance2(input_c.begin(), input_c.end(), input_c_flat.begin()); + etl::covariance<etl::covariance_type::Sample, signed char, int32_t> covariance2(input_c.begin(), input_c.end(), input_c_flat.begin()); covariance_result = covariance2.get_covariance(); CHECK_CLOSE(0.0, covariance_result, 0.1); // Positive covariance. - etl::covariance<etl::covariance_type::Sample, char, int32_t> covariance3(input_c.begin(), input_c.end(), input_c.begin()); + etl::covariance<etl::covariance_type::Sample, signed char, int32_t> covariance3(input_c.begin(), input_c.end(), input_c.begin()); covariance_result = covariance3.get_covariance(); CHECK_CLOSE(9.17, covariance_result, 0.1); } diff --git a/test/test_rms.cpp b/test/test_rms.cpp index cbc19884..0079819f 100644 --- a/test/test_rms.cpp +++ b/test/test_rms.cpp @@ -34,7 +34,7 @@ SOFTWARE. namespace { - std::array<char, 18> input_c + std::array<signed char, 18> input_c { // Sawtooth wave 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -8, -7, -6, -5, -4, -3, -2, -1 @@ -52,7 +52,7 @@ namespace //************************************************************************* TEST(test_char_rms) { - etl::rms<char, int> rms(input_c.begin(), input_c.end()); + etl::rms<signed char, int> rms(input_c.begin(), input_c.end()); double result = rms.get_rms(); CHECK_CLOSE(5.21, result, 0.05);