aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/noexcept16.C
blob: 10e0be9588798b70bc13fd42580e4d502e3e680a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// 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;
GenerateLexer()
{
  m_state_machine.minimise();
}