libstdc++: Fix tests that fail in C++98 mode

The header synopsis test fails to define NOTHROW for C++98.

The shared_ptr test should be skipped for C++98.

The debug mode one should work for C++98 too, it just needs to avoid
C++11 syntax that isn't valid in C++98.

libstdc++-v3/ChangeLog:

	* testsuite/20_util/headers/memory/synopsis.cc: Define C++98
	alternative for macro.
	* testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
	target keyword.
	* testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
	syntax.
This commit is contained in:
Jonathan Wakely 2021-05-11 17:14:26 +01:00
parent 5e3a1ea3d8
commit 37407a2ae7
3 changed files with 6 additions and 3 deletions

View File

@ -22,6 +22,8 @@
#if __cplusplus >= 201103L
# define NOTHROW noexcept
#else
# define NOTHROW
#endif
namespace std {

View File

@ -1,5 +1,5 @@
// FIXME: This should use { target { ! c++20 } }
// { dg-do compile }
// FIXME: This should use { target { c++11 && { ! c++20 } } }
// { dg-do compile { target { c++11 } } }
#include <memory>

View File

@ -28,8 +28,9 @@ using namespace std;
int main()
{
int two[] = { 0, 1 };
// any container with non-random access iterators:
const set<int> source = { 0, 1 };
const set<int> source(two, two + 2);
vector<int> dest(1);
copy(source.begin(), ++source.begin(), dest.begin());
}