2 // { dg-do compile { target c++11 } }
3 // Ignore all errors, we're just testing that this doesn't ICE
4 // { dg-prune-output "error" }
7 typedef long unsigned int size_t;
10 template<typename _Tp>
11 struct is_nothrow_move_constructible
14 template<typename _Tp>
15 struct is_nothrow_move_assignable
16 struct __add_rvalue_reference_helper<_Tp, true>
17 { typedef _Tp&& type; };
18 template<typename _Tp>
19 struct add_rvalue_reference
20 : public __add_rvalue_reference_helper<_Tp>
23 template<typename _Tp>
24 inline typename add_rvalue_reference<_Tp>::type
29 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
30 template<typename _Tp>
35 namespace std __attribute__ ((__visibility__ ("default")))
36 class allocator: public __gnu_cxx::new_allocator<_Tp>
38 template<typename _Tp1>
40 { typedef allocator<_Tp1> other; };
43 namespace std __attribute__ ((__visibility__ ("default")))
44 template<typename _Alloc, typename _Tp>
45 struct __alloctr_rebind<_Alloc, _Tp, true>
47 typedef typename _Alloc::template rebind<_Tp>::other __type;
49 template<typename _Alloc>
50 struct allocator_traits
52 template<typename _Tp>
55 typedef typename __alloctr_rebind<_Alloc, _Tp>::__type __type;
59 namespace __gnu_cxx __attribute__ ((__visibility__ ("default")))
60 template<typename _Alloc>
63 typedef std::allocator_traits<_Alloc> _Base_type;
64 static constexpr bool _S_nothrow_swap()
66 return !_S_propagate_on_swap()
67 || noexcept(swap(std::declval<_Alloc&>(), std::declval<_Alloc&>()));
69 template<typename _Tp>
71 { typedef typename _Base_type::template __rebind_alloc<_Tp>::__type other; };
74 namespace std __attribute__ ((__visibility__ ("default")))
75 template<typename _Tp, typename _Alloc>
78 typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
79 rebind<_Tp>::other _Tp_alloc_type;
81 template<typename _Tp, typename _Alloc = std::allocator<_Tp> >
82 class vector : protected _Vector_base<_Tp, _Alloc>
84 typedef _Vector_base<_Tp, _Alloc> _Base;
85 typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;
86 typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Alloc_traits;
88 noexcept(_Alloc_traits::_S_nothrow_swap());
95 template<typename id_type>
96 struct basic_internals
98 typedef std::vector<id_type> id_type_vector;
101 template<typename char_type, typename id_type = std::size_t>
102 class basic_state_machine
104 typedef detail::basic_internals<id_type> internals;
107 minimise_dfa (dfa_alphabet_, *dfa_, size_);
109 typedef typename internals::id_type_vector id_type_vector;
110 void minimise_dfa (const id_type dfa_alphabet_,
111 id_type_vector &dfa_, std::size_t size_)
113 id_type_vector new_dfa_ (front_, front_ + dfa_alphabet_);
114 dfa_.swap (new_dfa_);
118 namespace std __attribute__ ((__visibility__ ("default")))
119 template<typename _Tp>
122 noexcept(__and_<is_nothrow_move_constructible<_Tp>,
123 is_nothrow_move_assignable<_Tp>>::value)
125 typedef lexertl::basic_state_machine<char32_t> lexstate;
126 lexstate m_state_machine;
129 m_state_machine.minimise();