Define cxx11-abi effective target for libstdc++ tests
PR libstdc++/79075 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove redundant option from cxxflags. (check_effective_target_cxx11-abi): Define. * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi effective target. * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise. * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: Likewise. * testsuite/21_strings/basic_string/allocator/char/minimal.cc: Likewise. * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc: Likewise. * testsuite/21_strings/basic_string/allocator/char/noexcept.cc: Likewise. * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: Likewise. * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: Likewise. * testsuite/23_containers/list/61347.cc: Likewise. * testsuite/27_io/basic_fstream/cons/base.cc: Likewise. * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise. From-SVN: r244440
This commit is contained in:
parent
e5dcfacf43
commit
90aa73309e
|
@ -1,3 +1,40 @@
|
||||||
|
2017-01-13 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
|
PR libstdc++/79075
|
||||||
|
* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
|
||||||
|
redundant option from cxxflags.
|
||||||
|
(check_effective_target_cxx11-abi): Define.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
|
||||||
|
effective target.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/char/minimal.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
|
||||||
|
Likewise.
|
||||||
|
* testsuite/23_containers/list/61347.cc: Likewise.
|
||||||
|
* testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
|
||||||
|
* testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
|
||||||
|
|
||||||
2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
|
2017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com>
|
||||||
|
|
||||||
PR libstdc++/78389
|
PR libstdc++/78389
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
|
@ -58,13 +60,10 @@ operator!=(const mv_allocator<T>&, const mv_allocator<U>&) { return false; }
|
||||||
void
|
void
|
||||||
test01()
|
test01()
|
||||||
{
|
{
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
std::basic_string<char, std::char_traits<char>, mv_allocator<char>> s;
|
std::basic_string<char, std::char_traits<char>, mv_allocator<char>> s;
|
||||||
auto t = std::move(s);
|
auto t = std::move(s);
|
||||||
VERIFY( s.get_allocator().moved_from );
|
VERIFY( s.get_allocator().moved_from );
|
||||||
VERIFY( t.get_allocator().moved_to );
|
VERIFY( t.get_allocator().moved_to );
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = char;
|
using C = char;
|
||||||
const C c = 'a';
|
const C c = 'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -86,9 +87,3 @@ int main()
|
||||||
test03();
|
test03();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = char;
|
using C = char;
|
||||||
const C c = 'a';
|
const C c = 'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -104,9 +105,3 @@ int main()
|
||||||
test02();
|
test02();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,13 +16,14 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = char;
|
using C = char;
|
||||||
const C c = 'a';
|
const C c = 'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -40,9 +41,6 @@ void test01()
|
||||||
v.assign(1, c);
|
v.assign(1, c);
|
||||||
v.assign(100, c);
|
v.assign(100, c);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
void test01() { }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = char;
|
using C = char;
|
||||||
const C c = 'a';
|
const C c = 'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -56,9 +57,3 @@ int main()
|
||||||
test02();
|
test02();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = char;
|
using C = char;
|
||||||
const C c = 'a';
|
const C c = 'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -149,9 +150,3 @@ int main()
|
||||||
test03();
|
test03();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,11 +16,12 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do compile { target c++11 } }
|
// { dg-do compile { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = char;
|
using C = char;
|
||||||
const C c = 'a';
|
const C c = 'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -57,4 +58,3 @@ void test03()
|
||||||
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
|
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
|
||||||
static_assert( noexcept( v1.swap(v2) ), "Swap cannot throw" );
|
static_assert( noexcept( v1.swap(v2) ), "Swap cannot throw" );
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = char;
|
using C = char;
|
||||||
const C c = 'a';
|
const C c = 'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -79,9 +80,3 @@ int main()
|
||||||
test02();
|
test02();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = wchar_t;
|
using C = wchar_t;
|
||||||
const C c = L'a';
|
const C c = L'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -86,9 +87,3 @@ int main()
|
||||||
test03();
|
test03();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = wchar_t;
|
using C = wchar_t;
|
||||||
const C c = L'a';
|
const C c = L'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -104,9 +105,3 @@ int main()
|
||||||
test02();
|
test02();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,13 +16,14 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = wchar_t;
|
using C = wchar_t;
|
||||||
const C c = L'a';
|
const C c = L'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -40,9 +41,6 @@ void test01()
|
||||||
v.assign(1, c);
|
v.assign(1, c);
|
||||||
v.assign(100, c);
|
v.assign(100, c);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
void test01() { }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = wchar_t;
|
using C = wchar_t;
|
||||||
const C c = L'a';
|
const C c = L'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -56,9 +57,3 @@ int main()
|
||||||
test02();
|
test02();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = wchar_t;
|
using C = wchar_t;
|
||||||
const C c = L'a';
|
const C c = L'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -149,9 +150,3 @@ int main()
|
||||||
test03();
|
test03();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,11 +16,12 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do compile { target c++11 } }
|
// { dg-do compile { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = wchar_t;
|
using C = wchar_t;
|
||||||
const C c = L'a';
|
const C c = L'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -57,4 +58,3 @@ void test03()
|
||||||
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
|
static_assert( noexcept( v1 = std::move(v2) ), "Move assign cannot throw" );
|
||||||
static_assert( noexcept( v1.swap(v2) ), "Swap cannot throw" );
|
static_assert( noexcept( v1.swap(v2) ), "Swap cannot throw" );
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// COW strings don't support C++11 allocators:
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
#include <testsuite_allocator.h>
|
#include <testsuite_allocator.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using C = wchar_t;
|
using C = wchar_t;
|
||||||
const C c = L'a';
|
const C c = L'a';
|
||||||
using traits = std::char_traits<C>;
|
using traits = std::char_traits<C>;
|
||||||
|
@ -79,9 +80,3 @@ int main()
|
||||||
test02();
|
test02();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
// COW strings don't support C++11 allocators
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
// { dg-options "-O2 -D_GLIBCXX_USE_CXX11_ABI" }
|
// { dg-options "-O2" }
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
// { dg-require-normal-mode "" }
|
// { dg-require-normal-mode "" }
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
// Copyright (C) 2015-2017 Free Software Foundation, Inc.
|
// Copyright (C) 2015-2017 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
|
|
|
@ -15,8 +15,9 @@
|
||||||
// with this library; see the file COPYING3. If not see
|
// with this library; see the file COPYING3. If not see
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-options "-O0 -D_GLIBCXX_USE_CXX11_ABI=1" }
|
// { dg-options "-O0" }
|
||||||
// { dg-do link { target c++11 } }
|
// { dg-do link { target c++11 } }
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
|
@ -16,11 +16,11 @@
|
||||||
// <http://www.gnu.org/licenses/>.
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// { dg-do run { target c++11 } }
|
// { dg-do run { target c++11 } }
|
||||||
|
// { dg-require-effective-target cxx11-abi }
|
||||||
|
|
||||||
#include <ios>
|
#include <ios>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
|
|
||||||
#if _GLIBCXX_USE_CXX11_ABI
|
|
||||||
using test_type = std::ios_base::failure;
|
using test_type = std::ios_base::failure;
|
||||||
|
|
||||||
static_assert( std::is_base_of<std::system_error, test_type>::value, "base" );
|
static_assert( std::is_base_of<std::system_error, test_type>::value, "base" );
|
||||||
|
@ -51,6 +51,3 @@ main()
|
||||||
test01();
|
test01();
|
||||||
test02();
|
test02();
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
int main() { }
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1968,7 +1968,7 @@ proc check_v3_target_filesystem_ts { } {
|
||||||
close $f
|
close $f
|
||||||
|
|
||||||
set cxxflags_saved $cxxflags
|
set cxxflags_saved $cxxflags
|
||||||
set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -Werror -std=gnu++11"
|
set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -Werror"
|
||||||
|
|
||||||
set lines [v3_target_compile $src /dev/null preprocess ""]
|
set lines [v3_target_compile $src /dev/null preprocess ""]
|
||||||
set cxxflags $cxxflags_saved
|
set cxxflags $cxxflags_saved
|
||||||
|
@ -1983,6 +1983,34 @@ proc check_v3_target_filesystem_ts { } {
|
||||||
return $et_filesystem_ts
|
return $et_filesystem_ts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Return 1 if the "cxx11" ABI is in use using the current flags, 0 otherwise.
|
||||||
|
proc check_effective_target_cxx11-abi { } {
|
||||||
|
global cxxflags
|
||||||
|
|
||||||
|
# Set up and preprocess a C++ test program that depends
|
||||||
|
# on the new ABI being enabled.
|
||||||
|
set src cxx11_abi[pid].cc
|
||||||
|
|
||||||
|
set f [open $src "w"]
|
||||||
|
puts $f "#include <bits/c++config.h>"
|
||||||
|
puts $f "#if ! _GLIBCXX_USE_CXX11_ABI"
|
||||||
|
puts $f "# error old ABI in use"
|
||||||
|
puts $f "#endif"
|
||||||
|
close $f
|
||||||
|
|
||||||
|
set lines [v3_target_compile $src /dev/null preprocess ""]
|
||||||
|
file delete $src
|
||||||
|
|
||||||
|
if [string match "" $lines] {
|
||||||
|
# No error message, preprocessing succeeded.
|
||||||
|
verbose "check_v3_cxx11_abi: `1'" 2
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
verbose "check_v3_cxx11_abi: `0'" 2
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
set additional_prunes ""
|
set additional_prunes ""
|
||||||
|
|
||||||
if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \
|
if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \
|
||||||
|
|
Loading…
Reference in New Issue