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.
(cherry picked from commit
37407a2ae701c0a93377106a2938ab5474062fc3)
#include <memory>
+#if __cplusplus >= 201103L
+# define NOTHROW noexcept
+#else
+# define NOTHROW
+#endif
+
namespace std {
// lib.default.allocator, the default allocator:
template <class T> class allocator;
// lib.temporary.buffer, temporary buffers:
template <class T>
- pair<T*,ptrdiff_t> get_temporary_buffer(ptrdiff_t n);
+ pair<T*,ptrdiff_t> get_temporary_buffer(ptrdiff_t n) NOTHROW;
template <class T>
void return_temporary_buffer(T* p);
-// 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>
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());
}