Avoid spurious test failures when -fno-inline in test flags
authorJonathan Wakely <jwakely@redhat.com>
Fri, 4 Jan 2019 11:06:49 +0000 (11:06 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 4 Jan 2019 11:06:49 +0000 (11:06 +0000)
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.

From-SVN: r267573

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc
libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc

index 76fc247ad1d4f048c5d264f965b425bde413fb55..e6a2dc2ba700c71368bde213a5edd390e53211b9 100644 (file)
@@ -1,3 +1,11 @@
+2019-01-04  Jonathan Wakely  <jwakely@redhat.com>
+
+       * 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.
+
 2019-01-03  Jonathan Wakely  <jwakely@redhat.com>
            Jakub Jelinek  <jakub@redhat.com>
 
index 6ac54b509df5ef18682df9097ecf7b71e2bb73e8..bbe60e578caeffad731592c3a279219ff2957c19 100644 (file)
@@ -30,6 +30,8 @@ test01(std::string& target, std::string&& source)
   // The move assignment operator should be simple enough that the compiler
   // can see that it never results in a length_error or bad_alloc exception
   // (which would be turned into std::terminate by the noexcept on the
-  // assignment operator).
+  // assignment operator). This is only true when inlining though.
+#ifndef __NO_INLINE__
   target = std::move(source);
+#endif
 }
index 261c66410434ae2806f399fb09ee47e5a76153b8..15f3a4bcbe1719a808164e6180296a3c76428ee5 100644 (file)
@@ -30,6 +30,8 @@ test01(std::wstring& target, std::wstring&& source)
   // The move assignment operator should be simple enough that the compiler
   // can see that it never results in a length_error or bad_alloc exception
   // (which would be turned into std::terminate by the noexcept on the
-  // assignment operator).
+  // assignment operator). This is only true when inlining though.
+#ifndef __NO_INLINE__
   target = std::move(source);
+#endif
 }