1 // { dg-lto-do link }
2 typedef long unsigned int size_t;
3 namespace std __attribute__ ((__visibility__ ("default"))) {
4 using ::size_t;
5 template<typename _Tp>
6 struct __is_char
7 {
8 };
9 # 422 "/usr/include/c++/4.4.0/bits/cpp_type_traits.h" 3
10 }
11 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
12 template<bool, typename>
13 struct __enable_if
14 {
15 };
16 }
17 namespace std __attribute__ ((__visibility__ ("default"))) {
18 template<class _T1, class _T2>
19 struct pair
20 {
21 };
22 }
23 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
24 template<typename _Tp>
25 class new_allocator
26 {
27 };
28 }
29 namespace std __attribute__ ((__visibility__ ("default"))) {
30 template<typename _Tp>
31 class allocator: public __gnu_cxx::new_allocator<_Tp>
32 {
33 };
34 template<typename _Arg1, typename _Arg2, typename _Result>
35 struct binary_function
36 {
37 };
38 template<typename _Tp>
39 struct less : public binary_function<_Tp, _Tp, bool>
40 {
41 };
42 template<typename _CharT>
43 struct char_traits
44 {
45 typedef _CharT char_type;
46 static std::size_t
47 length(const char_type* __s);
48 };
49 template<typename _CharT>
50 std::size_t
51 char_traits<_CharT>::
length(const char_type * __p)52 length(const char_type* __p)
53 {
54 }
55 template<typename _CharT, typename _Traits = char_traits<_CharT> >
56 class istreambuf_iterator;
57 template<typename _CharT, typename _Traits, typename _Alloc>
58 class basic_string
59 {
60 };
61 }
62 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
63 template<typename _CharT, typename _Traits, typename _Alloc>
64 class __versa_string;
65 template<typename _CharT, typename _Traits, typename _Alloc>
66 struct __vstring_utility
67 {
68 };
69 template<typename _CharT, typename _Traits, typename _Alloc>
70 class __rc_string_base
71 {
72 typedef __vstring_utility<_CharT, _Traits, _Alloc> _Util_Base;
73 typedef typename _Util_Base::_CharT_alloc_type _CharT_alloc_type;
74 typedef typename _CharT_alloc_type::size_type size_type;
75 struct _Rep
76 {
77 union
78 {
79 };
80 static _Rep*
81 _S_create(size_type, size_type, const _Alloc&);
82 };
83 };
84 template<typename _CharT, typename _Traits, typename _Alloc>
85 typename __rc_string_base<_CharT, _Traits, _Alloc>::_Rep*
86 __rc_string_base<_CharT, _Traits, _Alloc>::_Rep::
_S_create(size_type __capacity,size_type __old_capacity,const _Alloc & __alloc)87 _S_create(size_type __capacity, size_type __old_capacity,
88 const _Alloc& __alloc)
89 {
90 };
91 }
92 template<typename _CharT, typename _Traits = std::char_traits<_CharT>,
93 typename _Alloc = std::allocator<_CharT> >
94 class basic_string
95 : public __gnu_cxx::__versa_string<_CharT, _Traits, _Alloc> {
96 };
97 template<typename _CharT, typename _Traits, typename _Alloc>
98 operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs,
99 const std::basic_string<_CharT, _Traits, _Alloc>& __rhs)
100 {
101 }
102 namespace std __attribute__ ((__visibility__ ("default"))) {
103 struct __uninitialized_copy
104 {
105 template<typename _InputIterator, typename _ForwardIterator>
uninitialized_copy__uninitialized_copy106 uninitialized_copy(_InputIterator __first, _InputIterator __last,
107 _ForwardIterator __result)
108 {
109 }
110 };
111 template<typename _InputIterator, typename _ForwardIterator>
uninitialized_copy(_InputIterator __first,_InputIterator __last,_ForwardIterator __result)112 uninitialized_copy(_InputIterator __first, _InputIterator __last,
113 _ForwardIterator __result)
114 {
115 }
116 class locale
117 {
118 class facet;
119 };
120 class locale::facet
121 {
122 };
123 class ios_base
124 {
125 template<typename _CharT2>
126 friend typename __gnu_cxx::__enable_if<__is_char<_CharT2>::__value,
127 istreambuf_iterator<_CharT2> >::__type
128 find(istreambuf_iterator<_CharT2>, istreambuf_iterator<_CharT2>,
129 const _CharT2&);
130 };
131 template<typename _CharT, typename _OutIter>
132 class num_put : public locale::facet
133 {
134 typedef _CharT char_type;
135 typedef _OutIter iter_type;
136 template<typename _ValueT>
137 iter_type
138 _M_insert_float(iter_type, ios_base& __io, char_type __fill,
139 char __mod, _ValueT __v) const;
140 };
141 template<typename _CharT, typename _OutIter>
142 template<typename _ValueT>
143 _OutIter
144 num_put<_CharT, _OutIter>::
_M_insert_float(_OutIter __s,ios_base & __io,_CharT __fill,char __mod,_ValueT __v)145 _M_insert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
146 _ValueT __v) const
147 {
148 }
149 template<typename _CharT, typename _OutIter>
150 class basic_ios : public ios_base
151 {
152 };
153 template<typename _CharT, typename _Traits>
154 class basic_istream : virtual public basic_ios<_CharT, _Traits>
155 {
156 typedef basic_istream<_CharT, _Traits> __istream_type;
157 template<typename _ValueT>
158 __istream_type&
159 _M_extract(_ValueT& __v);
160 };
161 template<typename _CharT, typename _Traits>
162 template<typename _ValueT>
163 basic_istream<_CharT, _Traits>&
164 basic_istream<_CharT, _Traits>::
_M_extract(_ValueT & __v)165 _M_extract(_ValueT& __v)
166 {
167 }
168 class hash_map
169 {
170 };
171 }
172 class CDE {
173 public:
~CDE()174 virtual ~CDE() { }
175 };
176 namespace std __attribute__ ((__visibility__ ("default"))) {
177 template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
178 typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
179 class map
180 {
181 };
182 template<typename _Key, typename _Tp, typename _Compare, typename _Alloc>
183 operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x,
184 const map<_Key, _Tp, _Compare, _Alloc>& __y)
185 { return !(__x < __y); }
186 }
187 namespace xyz {
188 class XYZ;
189 };
190 class ABC {
191 public:
~ABC()192 virtual ~ABC() { }
193 };
194 class FGH : public CDE, public ABC {
195 public:
196 explicit FGH(CDE* efg);
197 };
198 namespace {
199 class LMN : public FGH {
LMN(CDE * efg,xyz::XYZ * hij)200 LMN(CDE* efg, xyz::XYZ* hij) : FGH(efg) { }
201 };
202 }
main()203 main(){}
204