From 5778149583e69b34ab375039ffcc5d51a4dd7b37 Mon Sep 17 00:00:00 2001 From: Daniel599 Date: Sat, 14 Jul 2018 03:19:09 +0300 Subject: [PATCH] Test broken size (#704) * added test for size check (#590) * added #if for gcc 6.4 bug (#590) * hopefully fix #if for gcc 6.4 bug (#590) * fixed CHECK usage (#590) * gcc broken size bug is only when using optimizations --- tests/span_tests.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/span_tests.cpp b/tests/span_tests.cpp index 20279ec..67c1b59 100644 --- a/tests/span_tests.cpp +++ b/tests/span_tests.cpp @@ -459,6 +459,23 @@ TEST_CASE("from_std_array_constructor") auto s = make_span(arr); CHECK((s.size() == narrow_cast(arr.size()) && s.data() == arr.data())); } + + // This test checks for the bug found in gcc 6.1, 6.2, 6.3, 7.1, 7.2, 7.3 - issue #590 + { + span s1 = make_span(arr); + + static span s2; + s2 = s1; + + #if __GNUC__ == 6 && __GNUC_MINOR__ == 4 && __GNUC_PATCHLEVEL__ == 0 && defined(__OPTIMIZE__) + // Known to be broken in gcc 6.4 with optimizations + // Issue in gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83116 + CHECK(s1.size() == 4); + CHECK(s2.size() == 0); + #else + CHECK(s1.size() == s2.size()); + #endif + } } TEST_CASE("from_const_std_array_constructor")