1 // { dg-lto-do link }
2
3 typedef long size_t;
4 template < class, class > struct pair
5 {
6 }
7 ;
8 template < typename > class allocator;
9 template < typename > struct equal_to;
10
11 template < class > struct hash;
12 template
13 <
14 class, class, class, class, class, class > struct dense_hashtable_iterator;
15 template
16 <
17 class,
18 class, class, class, class, class > struct dense_hashtable_const_iterator;
19 template
20 <
21 class
22 Value,
23 class
24 Key,
25 class
26 HashFcn,
27 class ExtractKey, class EqualKey, class Alloc > class dense_hashtable
28 {
29 public:
30 typedef Key key_type;
31 typedef Value value_type;
32 typedef size_t size_type;
33 typedef
34 dense_hashtable_iterator
35 < Value, Key, HashFcn, ExtractKey, EqualKey, Alloc > iterator;
36 typedef
37 dense_hashtable_const_iterator
38 < Value, Key, HashFcn, ExtractKey, EqualKey, Alloc > const_iterator;
39 static const size_type ILLEGAL_BUCKET = (-1);
find_position(key_type)40 pair < size_type, size_type > find_position (key_type)
41 {
42 size_type insert_pos = ILLEGAL_BUCKET;
43 }
insert_noresize(value_type obj)44 pair < iterator, bool > insert_noresize (value_type obj)
45 {
46 pair < size_type, size_type > pos = find_position ((obj));
47 }
insert(value_type & obj)48 pair < iterator, bool > insert (value_type & obj)
49 {
50 insert_noresize (obj);
51 }
52 ExtractKey get_key;
53 }
54
55 ;
56 template
57 <
58 class
59 Value,
60 class
61 HashFcn
62 =
63 hash
64 <
65 Value
66 >,
67 class
68 EqualKey
69 =
70 equal_to < Value >, class Alloc = allocator < Value > >class dense_hash_set
71 {
72 struct Identity
73 {
74 }
75 ;
76 typedef
77 dense_hashtable < Value, Value, HashFcn, Identity, EqualKey, Alloc > ht;
78 ht rep;
79 public:
80 typedef typename ht::value_type value_type;
81 typedef typename ht::const_iterator iterator;
insert(value_type obj)82 pair < iterator, bool > insert (value_type obj)
83 {
84 pair < typename ht::iterator, bool > p = rep.insert (obj);
85 }
86 }
87
88 ;
89 class blah_46
90 {
91 }
92 ;
93 struct foo_10:dense_hash_set < blah_46 >
94 {
95 }
96 ;
97 class foo_14
98 {
99 void hmmmmh_5 (blah_46);
100 foo_10 negative_rrrrrrr_type_data_;
101 }
102 ;
103 void
hmmmmh_5(blah_46 hahaha_id)104 foo_14::hmmmmh_5 (blah_46 hahaha_id)
105 {
106 negative_rrrrrrr_type_data_.insert (hahaha_id);
107 }
108
main()109 int main () { return 0; }
110