Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/noexcept16.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// PR c++/50972 // { dg-do compile { target c++11 } } // Ignore all errors, we're just testing that this doesn't ICE // { dg-prune-output "error" } namespace std typedef long unsigned int size_t; template<typename...> struct __and_; template<typename _Tp> struct is_nothrow_move_constructible { }; template<typename _Tp> struct is_nothrow_move_assignable struct __add_rvalue_reference_helper<_Tp, true> { typedef _Tp&& type; }; template<typename _Tp> struct add_rvalue_reference : public __add_rvalue_reference_helper<_Tp> { }; template<typename _Tp> inline typename add_rvalue_reference<_Tp>::type declval() noexcept { } } namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) template<typename _Tp> class new_allocator { }; } namespace std __attribute__ ((__visibility__ ("default"))) class allocator: public __gnu_cxx::new_allocator<_Tp> { template<typename _Tp1> struct rebind { typedef allocator<_Tp1> other; }; }; } namespace std __attribute__ ((__visibility__ ("default"))) template<typename _Alloc, typename _Tp> struct __alloctr_rebind<_Alloc, _Tp, true> { typedef typename _Alloc::template rebind<_Tp>::other __type; }; template<typename _Alloc> struct allocator_traits { template<typename _Tp> struct __rebind_alloc { typedef typename __alloctr_rebind<_Alloc, _Tp>::__type __type; }; } } namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) template<typename _Alloc> struct __alloc_traits { typedef std::allocator_traits<_Alloc> _Base_type; static constexpr bool _S_nothrow_swap() { return !_S_propagate_on_swap() || noexcept(swap(std::declval<_Alloc&>(), std::declval<_Alloc&>())); } template<typename _Tp> struct rebind { typedef typename _Base_type::template __rebind_alloc<_Tp>::__type other; }; }; } namespace std __attribute__ ((__visibility__ ("default"))) template<typename _Tp, typename _Alloc> struct _Vector_base { typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type; }; template<typename _Tp, typename _Alloc = std::allocator<_Tp> > class vector : protected _Vector_base<_Tp, _Alloc> { typedef _Vector_base<_Tp, _Alloc> _Base; typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits; swap(vector& __x) noexcept(_Alloc_traits::_S_nothrow_swap()); }; } namespace lexertl namespace detail } namespace detail template<typename id_type> struct basic_internals { typedef std::vector<id_type> id_type_vector; }; }; template<typename char_type, typename id_type = std::size_t> class basic_state_machine { typedef detail::basic_internals<id_type> internals; void minimise () { minimise_dfa (dfa_alphabet_, *dfa_, size_); } typedef typename internals::id_type_vector id_type_vector; void minimise_dfa (const id_type dfa_alphabet_, id_type_vector &dfa_, std::size_t size_) { id_type_vector new_dfa_ (front_, front_ + dfa_alphabet_); dfa_.swap (new_dfa_); } } } namespace std __attribute__ ((__visibility__ ("default"))) template<typename _Tp> void swap(_Tp&, _Tp&) noexcept(__and_<is_nothrow_move_constructible<_Tp>, is_nothrow_move_assignable<_Tp>>::value) ; typedef lexertl::basic_state_machine<char32_t> lexstate; lexstate m_state_machine; void GenerateLexer() { m_state_machine.minimise(); }