OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.dg/] [cpp0x/] [rv6n.C] - Blame information for rev 301

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 301 jeremybenn
// I, Howard Hinnant, hereby place this code in the public domain.
2
 
3
// Test overload resolution among reference types
4
 
5
// { dg-do compile }
6
// { dg-options "-std=c++0x" }
7
 
8
template  struct sa;
9
template <> struct sa {};
10
 
11
struct one   {char x[1];};
12
struct two   {char x[2];};
13
struct three {char x[3];};
14
struct four  {char x[4];};
15
struct five  {char x[5];};
16
struct six   {char x[6];};
17
struct seven {char x[7];};
18
struct eight {char x[8];};
19
 
20
struct A
21
{
22
    A();
23
    A(const volatile A&&);
24
};
25
 
26
               A    source();
27
const          A  c_source();
28
      volatile A  v_source();
29
const volatile A cv_source();
30
 
31
// 6 at a time
32
 
33
one   sink_6_123456(               A&);  // { dg-message "candidates" }
34
two   sink_6_123456(const          A&);  // { dg-message "note" }
35
three sink_6_123456(volatile       A&);  // { dg-message "note" }
36
four  sink_6_123456(const volatile A&);  // { dg-message "note" }
37
five  sink_6_123456(               A&&);  // { dg-message "note" }
38
six   sink_6_123456(const          A&&);  // { dg-message "note" }
39
 
40
int test6_123456()
41
{
42
                   A a;
43
    const          A ca = a;
44
          volatile A va;
45
    const volatile A cva = a;
46
    sink_6_123456(v_source());   // { dg-error "no match" }
47
    sink_6_123456(cv_source());  // { dg-error "no match" }
48
    return 0;
49
}
50
 
51
one   sink_6_123457(               A&);  // { dg-message "candidates" }
52
two   sink_6_123457(const          A&);  // { dg-message "note" }
53
three sink_6_123457(volatile       A&);  // { dg-message "note" }
54
four  sink_6_123457(const volatile A&);  // { dg-message "note" }
55
five  sink_6_123457(               A&&);  // { dg-message "note" }
56
seven sink_6_123457(volatile       A&&);  // { dg-message "note" }
57
 
58
int test6_123457()
59
{
60
                   A a;
61
    const          A ca = a;
62
          volatile A va;
63
    const volatile A cva = a;
64
    sink_6_123457(cv_source());  // { dg-error "no match" }
65
    return 0;
66
}
67
 
68
two   sink_6_235678(const          A&);  // { dg-message "candidates" }
69
three sink_6_235678(volatile       A&);  // { dg-message "note" }
70
five  sink_6_235678(               A&&);  // { dg-message "note" }
71
six   sink_6_235678(const          A&&);  // { dg-message "note" }
72
seven sink_6_235678(volatile       A&&);  // { dg-message "note" }
73
eight sink_6_235678(const volatile A&&);  // { dg-message "" }
74
 
75
int test6_235678()
76
{
77
                   A a;
78
    const          A ca = a;
79
          volatile A va;
80
    const volatile A cva = a;
81
    sink_6_235678(a);  // { dg-error "ambiguous" }
82
    sink_6_235678(cva);         // { dg-error "lvalue" }
83
    return 0;
84
}
85
 
86
two   sink_6_234678(const          A&);  // { dg-message "candidates" }
87
three sink_6_234678(volatile       A&);  // { dg-message "note" }
88
four  sink_6_234678(const volatile A&);  // { dg-message "note" }
89
six   sink_6_234678(const          A&&);  // { dg-message "note" }
90
seven sink_6_234678(volatile       A&&);  // { dg-message "note" }
91
eight sink_6_234678(const volatile A&&);  // { dg-message "note" }
92
 
93
int test6_234678()
94
{
95
                   A a;
96
    const          A ca = a;
97
          volatile A va;
98
    const volatile A cva = a;
99
    sink_6_234678(a);         // { dg-error "ambiguous" }
100
    sink_6_234678(source());  // { dg-error "ambiguous" }
101
    return 0;
102
}
103
 
104
two   sink_6_234578(const          A&);  // { dg-message "candidates" }
105
three sink_6_234578(volatile       A&);  // { dg-message "note" }
106
four  sink_6_234578(const volatile A&);  // { dg-message "note" }
107
five  sink_6_234578(               A&&);  // { dg-message "note" }
108
seven sink_6_234578(volatile       A&&);  // { dg-message "note" }
109
eight sink_6_234578(const volatile A&&);  // { dg-message "note" }
110
 
111
int test6_234578()
112
{
113
                   A a;
114
    const          A ca = a;
115
          volatile A va;
116
    const volatile A cva = a;
117
    sink_6_234578(a);  // { dg-error "ambiguous" }
118
    return 0;
119
}
120
 
121
two   sink_6_234568(const          A&);  // { dg-message "candidates" }
122
three sink_6_234568(volatile       A&);  // { dg-message "note" }
123
four  sink_6_234568(const volatile A&);  // { dg-message "note" }
124
five  sink_6_234568(               A&&);  // { dg-message "note" }
125
six   sink_6_234568(const          A&&);  // { dg-message "note" }
126
eight sink_6_234568(const volatile A&&);  // { dg-message "note" }
127
 
128
int test6_234568()
129
{
130
                   A a;
131
    const          A ca = a;
132
          volatile A va;
133
    const volatile A cva = a;
134
    sink_6_234568(a);  // { dg-error "ambiguous" }
135
    return 0;
136
}
137
 
138
two   sink_6_234567(const          A&);  // { dg-message "candidates" }
139
three sink_6_234567(volatile       A&);  // { dg-message "note" }
140
four  sink_6_234567(const volatile A&);  // { dg-message "note" }
141
five  sink_6_234567(               A&&);  // { dg-message "note" }
142
six   sink_6_234567(const          A&&);  // { dg-message "note" }
143
seven sink_6_234567(volatile       A&&);  // { dg-message "note" }
144
 
145
int test6_234567()
146
{
147
                   A a;
148
    const          A ca = a;
149
          volatile A va;
150
    const volatile A cva = a;
151
    sink_6_234567(a);            // { dg-error "ambiguous" }
152
    sink_6_234567(cv_source());  // { dg-error "no match" }
153
    return 0;
154
}
155
 
156
one   sink_6_134678(               A&);
157
three sink_6_134678(volatile       A&);
158
four  sink_6_134678(const volatile A&);
159
six   sink_6_134678(const          A&&);  // { dg-message "candidates" }
160
seven sink_6_134678(volatile       A&&);  // { dg-message "note" }
161
eight sink_6_134678(const volatile A&&);  // { dg-message "note" }
162
 
163
int test6_134678()
164
{
165
                   A a;
166
    const          A ca = a;
167
          volatile A va;
168
    const volatile A cva = a;
169
    sink_6_134678(source());  // { dg-error "ambiguous" }
170
    return 0;
171
}
172
 
173
one   sink_6_124678(               A&);
174
two   sink_6_124678(const          A&);  // { dg-message "candidates" }
175
four  sink_6_124678(const volatile A&);
176
six   sink_6_124678(const          A&&);  // { dg-message "note" }
177
seven sink_6_124678(volatile       A&&);  // { dg-message "note" }
178
eight sink_6_124678(const volatile A&&);  // { dg-message "note" }
179
 
180
int test6_124678()
181
{
182
                   A a;
183
    const          A ca = a;
184
          volatile A va;
185
    const volatile A cva = a;
186
    sink_6_124678(source());  // { dg-error "ambiguous" }
187
    return 0;
188
}
189
 
190
one   sink_6_123678(               A&);
191
two   sink_6_123678(const          A&);  // { dg-message "candidates" }
192
three sink_6_123678(volatile       A&);
193
six   sink_6_123678(const          A&&);  // { dg-message "note" }
194
seven sink_6_123678(volatile       A&&);  // { dg-message "note" }
195
eight sink_6_123678(const volatile A&&);  // { dg-message "" }
196
 
197
int test6_123678()
198
{
199
                   A a;
200
    const          A ca = a;
201
          volatile A va;
202
    const volatile A cva = a;
203
    sink_6_123678(cva);         // { dg-error "lvalue" }
204
    sink_6_123678(source());  // { dg-error "ambiguous" }
205
    return 0;
206
}
207
 
208
one   sink_6_123567(               A&);  // { dg-message "candidates" }
209
two   sink_6_123567(const          A&);  // { dg-message "note" }
210
three sink_6_123567(volatile       A&);  // { dg-message "note" }
211
five  sink_6_123567(               A&&);  // { dg-message "note" }
212
six   sink_6_123567(const          A&&);  // { dg-message "note" }
213
seven sink_6_123567(volatile       A&&);  // { dg-message "note" }
214
 
215
int test6_123567()
216
{
217
                   A a;
218
    const          A ca = a;
219
          volatile A va;
220
    const volatile A cva = a;
221
    sink_6_123567(cva);          // { dg-error "no match" }
222
    sink_6_123567(cv_source());  // { dg-error "no match" }
223
    return 0;
224
}
225
 
226
one   sink_6_123568(               A&);
227
two   sink_6_123568(const          A&);
228
three sink_6_123568(volatile       A&);
229
five  sink_6_123568(               A&&);
230
six   sink_6_123568(const          A&&);
231
eight sink_6_123568(const volatile A&&); // { dg-message "" }
232
 
233
int test6_123568()
234
{
235
                   A a;
236
    const          A ca = a;
237
          volatile A va;
238
    const volatile A cva = a;
239
    sink_6_123568(cva); // { dg-error "lvalue" }
240
    return 0;
241
}
242
 
243
one   sink_6_123578(               A&);
244
two   sink_6_123578(const          A&);
245
three sink_6_123578(volatile       A&);
246
five  sink_6_123578(               A&&);
247
seven sink_6_123578(volatile       A&&);
248
eight sink_6_123578(const volatile A&&); // { dg-message "" }
249
 
250
int test6_123578()
251
{
252
                   A a;
253
    const          A ca = a;
254
          volatile A va;
255
    const volatile A cva = a;
256
    sink_6_123578(cva);         // { dg-error "lvalue" }
257
    return 0;
258
}
259
 
260
one   sink_6_123467(               A&);  // { dg-message "candidates" }
261
two   sink_6_123467(const          A&);  // { dg-message "note" }
262
three sink_6_123467(volatile       A&);  // { dg-message "note" }
263
four  sink_6_123467(const volatile A&);  // { dg-message "note" }
264
six   sink_6_123467(const          A&&);  // { dg-message "note" }
265
seven sink_6_123467(volatile       A&&);  // { dg-message "note" }
266
 
267
int test6_123467()
268
{
269
                   A a;
270
    const          A ca = a;
271
          volatile A va;
272
    const volatile A cva = a;
273
    sink_6_123467(source());     // { dg-error "ambiguous" }
274
    sink_6_123467(cv_source());  // { dg-error "no match" }
275
    return 0;
276
}
277
 
278
one   sink_6_124567(               A&);  // { dg-message "candidates" }
279
two   sink_6_124567(const          A&);  // { dg-message "note" }
280
four  sink_6_124567(const volatile A&);  // { dg-message "note" }
281
five  sink_6_124567(               A&&);  // { dg-message "note" }
282
six   sink_6_124567(const          A&&);  // { dg-message "note" }
283
seven sink_6_124567(volatile       A&&);  // { dg-message "note" }
284
 
285
int test6_124567()
286
{
287
                   A a;
288
    const          A ca = a;
289
          volatile A va;
290
    const volatile A cva = a;
291
    sink_6_124567(cv_source());  // { dg-error "no match" }
292
    return 0;
293
}
294
 
295
one   sink_6_125678(               A&);
296
two   sink_6_125678(const          A&);
297
five  sink_6_125678(               A&&);
298
six   sink_6_125678(const          A&&);
299
seven sink_6_125678(volatile       A&&); // { dg-message "" }
300
eight sink_6_125678(const volatile A&&); // { dg-message "" }
301
 
302
int test6_125678()
303
{
304
                   A a;
305
    const          A ca = a;
306
          volatile A va;
307
    const volatile A cva = a;
308
    sink_6_125678(va);          // { dg-error "lvalue" }
309
    sink_6_125678(cva);         // { dg-error "lvalue" }
310
    return 0;
311
}
312
 
313
one   sink_6_134567(               A&);  // { dg-message "candidates" }
314
three sink_6_134567(volatile       A&);  // { dg-message "note" }
315
four  sink_6_134567(const volatile A&);  // { dg-message "note" }
316
five  sink_6_134567(               A&&);  // { dg-message "note" }
317
six   sink_6_134567(const          A&&);  // { dg-message "note" }
318
seven sink_6_134567(volatile       A&&);  // { dg-message "note" }
319
 
320
int test6_134567()
321
{
322
                   A a;
323
    const          A ca = a;
324
          volatile A va;
325
    const volatile A cva = a;
326
    sink_6_134567(cv_source());  // { dg-error "no match" }
327
    return 0;
328
}
329
 
330
one   sink_6_135678(               A&);
331
three sink_6_135678(volatile       A&);
332
five  sink_6_135678(               A&&);
333
six   sink_6_135678(const          A&&); // { dg-message "" }
334
seven sink_6_135678(volatile       A&&);
335
eight sink_6_135678(const volatile A&&); // { dg-message "" }
336
 
337
int test6_135678()
338
{
339
                   A a;
340
    const          A ca = a;
341
          volatile A va;
342
    const volatile A cva = a;
343
    sink_6_135678(ca);          // { dg-error "lvalue" }
344
    sink_6_135678(cva);         // { dg-error "lvalue" }
345
    return 0;
346
}
347
 
348
int main()
349
{
350
    return test6_235678() + test6_234678() + test6_234578() + test6_234568() +
351
           test6_234567() + test6_134678() + test6_124678() + test6_123678() +
352
           test6_123567();
353
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.