On 04/01/19 11:38 +0000, Jonathan Wakely wrote:
These tests rely on inlining, so if -fno-inline is added to the compiler
flags the tests fail. Use the predefined __NO_INLINE__ macro to detect
that situation, and don't bother testing the move assignment.

        * testsuite/21_strings/basic_string/modifiers/assign/char/
        move_assign_optim.cc: Avoid spurious failure when -fno-inline added
        to test flags.
        * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
        move_assign_optim.cc: Likewise.

And another similar patch.

Tested x86_64-linux, committed to trunk.


commit 13388137fd5b141231daba34b55c176ed5b2c980
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Fri Jan 4 18:49:11 2019 +0000

    Fix test failure when -fno-inline is used
    
    This currently checks _GLIBCXX_USE_DUAL_ABI which is incorrect, as that
    can be true when _GLIBCXX_USE_CXX11_ABI == 0. The correct check would be
    _GLIBCXX_USE_CXX11_ABI == 1, but that's made redundant by the cxx11-abi
    effective target that the test requires. However, the test will fail if
    -fno-inline is used, so check __NO_INLINE__ instead.
    
            * testsuite/23_containers/list/61347.cc: Avoid spurious failure when
            -fno-inline added to test flags.

diff --git a/libstdc++-v3/testsuite/23_containers/list/61347.cc b/libstdc++-v3/testsuite/23_containers/list/61347.cc
index 0ae905848ec..178c306698f 100644
--- a/libstdc++-v3/testsuite/23_containers/list/61347.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/61347.cc
@@ -42,7 +42,7 @@ void testc(const std::list<short>& l)
 
 int main()
 {
-#if _GLIBCXX_USE_DUAL_ABI
+#if ! __NO_INLINE__
   std::list<short> l;
   testm(l);
   testc(l);

Reply via email to