2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / lto / 20090106_0.C
blob8c4d3952ef2a3caa084687c5c5a6ddab11c066c4
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
11 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
12   template<bool, typename>
13     struct __enable_if
14     {
15     };
17 namespace std __attribute__ ((__visibility__ ("default"))) {
18   template<class _T1, class _T2>
19     struct pair
20     {
21     };
23 namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
24   template<typename _Tp>
25     class new_allocator
26     {
27     };
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>::
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   };
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::
87     _S_create(size_type __capacity, size_type __old_capacity,
88        const _Alloc& __alloc)
89     {
90     };
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> {
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   {
102 namespace std __attribute__ ((__visibility__ ("default"))) {
103     struct __uninitialized_copy
104     {
105       template<typename _InputIterator, typename _ForwardIterator>
106         uninitialized_copy(_InputIterator __first, _InputIterator __last,
107       _ForwardIterator __result)
108         {
110     };
111   template<typename _InputIterator, typename _ForwardIterator>
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>::
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>::
165       _M_extract(_ValueT& __v)
166       {
167       }
168     class hash_map
169     {
170     };
172 class CDE {
173  public:
174   virtual ~CDE() { }
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); }
187 namespace xyz {
188 class XYZ;
190 class ABC {
191  public:
192   virtual ~ABC() { }
194 class FGH : public CDE, public ABC {
195  public:
196   explicit FGH(CDE* efg);
198 namespace {
199 class LMN : public FGH {
200   LMN(CDE* efg, xyz::XYZ* hij) : FGH(efg) { }
203 main(){}