1 /* PR middle-end/100574 - ICE: in size_remaining, at builtins.c:413 with
2 -O3 -ftracer -fno-tree-dominator-opts -fno-tree-fre
3 { dg-do compile { target c++11 } }
4 { dg-options "-O3 -ftracer -fno-tree-dominator-opts -fno-tree-fre" } */
6 void *operator new (__SIZE_TYPE__, void *__p) { return __p; }
8 template <typename> struct allocator_traits;
9 template <typename> class allocator {};
10 template <typename _Tp> struct allocator_traits<allocator<_Tp> >
12 using allocator_type = allocator<_Tp>;
13 using pointer = _Tp *;
14 using size_type = long;
15 template <typename _Up> using rebind_alloc = allocator<_Up>;
16 static pointer allocate(allocator_type, size_type);
17 template <typename _Up> static void construct(_Up __p) { new (__p) _Up(); }
20 struct __alloc_traits : allocator_traits<allocator<char>> {
22 typedef rebind_alloc<char> other;
27 struct : __alloc_traits::rebind::other {
32 template <typename, typename = char> class vector : _Vector_base {
35 void push_back() { _M_realloc_insert(); }
36 template <typename...> void _M_realloc_insert();
39 template <typename _Tp, typename _Alloc>
40 template <typename...>
41 void vector<_Tp, _Alloc>::_M_realloc_insert() {
42 __alloc_traits::pointer __trans_tmp_5;
43 /* __len is used uninitialized below, which might trigger warnings,
44 even without -Wall (and other than -Wuninitialized). */
45 long __len(__len || max_size()), __elems_before;
46 __trans_tmp_5 = _M_allocate___n
47 ? __alloc_traits::allocate(_M_impl, _M_allocate___n)
48 : __alloc_traits::pointer();
49 __alloc_traits::construct(__trans_tmp_5 + __elems_before);
52 enum { MIDIST_PITCHBEND };
57 char ReadTrackChunk_status;
63 switch (ReadTrackChunk_status)
64 case MIDIST_PITCHBEND:
65 block.data.push_back();
68 // { dg-prune-output "warning" }