annotate gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR c++/71092
kono
parents:
diff changeset
2 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 template <typename _Default> struct A { using type = _Default; };
kono
parents:
diff changeset
5 template <typename _Default, template <typename> class>
kono
parents:
diff changeset
6 using __detected_or = A<_Default>;
kono
parents:
diff changeset
7 template <typename _Default, template <typename> class _Op>
kono
parents:
diff changeset
8 using __detected_or_t = typename __detected_or<_Default, _Op>::type;
kono
parents:
diff changeset
9 template <typename _Tp> struct B { typedef _Tp value_type; };
kono
parents:
diff changeset
10 struct C {
kono
parents:
diff changeset
11 template <typename _Tp> using __pointer = typename _Tp::pointer;
kono
parents:
diff changeset
12 };
kono
parents:
diff changeset
13 template <typename _Alloc> struct J : C {
kono
parents:
diff changeset
14 using pointer = __detected_or_t<typename _Alloc::value_type *, __pointer>;
kono
parents:
diff changeset
15 };
kono
parents:
diff changeset
16 template <typename _T1> void _Construct(_T1 *) { new _T1; }
kono
parents:
diff changeset
17 struct D {
kono
parents:
diff changeset
18 template <typename _ForwardIterator, typename _Size>
kono
parents:
diff changeset
19 static _ForwardIterator __uninit_default_n(_ForwardIterator p1, _Size) {
kono
parents:
diff changeset
20 _Construct(p1);
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
21 return _ForwardIterator();
111
kono
parents:
diff changeset
22 }
kono
parents:
diff changeset
23 };
kono
parents:
diff changeset
24 template <typename _ForwardIterator, typename _Size>
kono
parents:
diff changeset
25 void __uninitialized_default_n(_ForwardIterator p1, _Size) {
kono
parents:
diff changeset
26 D::__uninit_default_n(p1, 0);
kono
parents:
diff changeset
27 }
kono
parents:
diff changeset
28 template <typename _ForwardIterator, typename _Size, typename _Tp>
kono
parents:
diff changeset
29 void __uninitialized_default_n_a(_ForwardIterator p1, _Size, _Tp) {
kono
parents:
diff changeset
30 __uninitialized_default_n(p1, 0);
kono
parents:
diff changeset
31 }
kono
parents:
diff changeset
32 template <typename> struct __shared_ptr {
kono
parents:
diff changeset
33 constexpr __shared_ptr() : _M_ptr(), _M_refcount() {}
kono
parents:
diff changeset
34 int _M_ptr;
kono
parents:
diff changeset
35 int _M_refcount;
kono
parents:
diff changeset
36 };
kono
parents:
diff changeset
37 template <typename _Alloc> struct F {
kono
parents:
diff changeset
38 typedef _Alloc _Tp_alloc_type;
kono
parents:
diff changeset
39 struct G {
kono
parents:
diff changeset
40 typename J<_Tp_alloc_type>::pointer _M_start;
kono
parents:
diff changeset
41 G(_Tp_alloc_type);
kono
parents:
diff changeset
42 };
kono
parents:
diff changeset
43 F(int, _Alloc p2) : _M_impl(p2) {}
kono
parents:
diff changeset
44 G _M_impl;
kono
parents:
diff changeset
45 };
kono
parents:
diff changeset
46 template <typename _Tp, typename _Alloc = B<_Tp>> struct K : F<_Alloc> {
kono
parents:
diff changeset
47 typedef _Alloc allocator_type;
kono
parents:
diff changeset
48 K(int, allocator_type p2 = allocator_type()) : F<_Alloc>(0, p2) {
kono
parents:
diff changeset
49 __uninitialized_default_n_a(this->_M_impl._M_start, 0, 0);
kono
parents:
diff changeset
50 }
kono
parents:
diff changeset
51 };
kono
parents:
diff changeset
52 struct H {
kono
parents:
diff changeset
53 H();
kono
parents:
diff changeset
54 struct I {
kono
parents:
diff changeset
55 __shared_ptr<int> trigger[1];
kono
parents:
diff changeset
56 };
kono
parents:
diff changeset
57 __shared_ptr<int> resetTrigger_;
kono
parents:
diff changeset
58 K<I> states_;
kono
parents:
diff changeset
59 __shared_ptr<int> triggerManager_;
kono
parents:
diff changeset
60 };
kono
parents:
diff changeset
61 __shared_ptr<int> a;
kono
parents:
diff changeset
62 H::H() : states_(0), triggerManager_(a) {}