Avoid spurious test failures when -fno-inline in test flags

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
This commit is contained in:
Jonathan Wakely 2019-01-04 11:06:49 +00:00 committed by Jonathan Wakely
parent a52fcfac0a
commit 5db78cac10
3 changed files with 14 additions and 2 deletions

View 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>

View 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
}

View 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
}