From 3a3148cc16bfca1a6a94a284e3664b1bc8785859 Mon Sep 17 00:00:00 2001 From: Christian Mazakas Date: Fri, 16 Jun 2023 13:51:05 -0700 Subject: [PATCH] Add workaround for gcc-5.4 deficiencies in copy elision and new() construction --- test/cfoa/insert_tests.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/cfoa/insert_tests.cpp b/test/cfoa/insert_tests.cpp index f773edf9..34b5201d 100644 --- a/test/cfoa/insert_tests.cpp +++ b/test/cfoa/insert_tests.cpp @@ -114,7 +114,11 @@ namespace { }); BOOST_TEST_EQ(raii::default_constructor, 2 * values2.size()); +#if BOOST_WORKAROUND(BOOST_GCC_VERSION, != 50400) + // some versions of old gcc have trouble eliding copies here + // https://godbolt.org/z/Ebo6TbvaG BOOST_TEST_EQ(raii::copy_constructor, 0u); +#endif BOOST_TEST_EQ(raii::copy_assignment, 0u); BOOST_TEST_EQ(raii::move_assignment, 0u); } @@ -397,7 +401,9 @@ namespace { BOOST_TEST_EQ(num_invokes, values.size() - x.size()); BOOST_TEST_EQ(raii::default_constructor, 2 * values2.size()); +#if BOOST_WORKAROUND(BOOST_GCC_VERSION, != 50400) BOOST_TEST_EQ(raii::copy_constructor, 0u); +#endif BOOST_TEST_GT(raii::move_constructor, 0u); } } iterator_range_insert_or_cvisit; @@ -425,7 +431,9 @@ namespace { BOOST_TEST_EQ(num_invokes, values.size() - x.size()); BOOST_TEST_EQ(raii::default_constructor, 2 * values2.size()); +#if BOOST_WORKAROUND(BOOST_GCC_VERSION, != 50400) BOOST_TEST_EQ(raii::copy_constructor, 0u); +#endif BOOST_TEST_GT(raii::move_constructor, 0u); } } iterator_range_insert_or_visit;