1 // { dg-do link { target c++11 } }
2 // { dg-options "" }
3 // Generated by overload.py
4 
5 template<typename _Tp>
6 inline _Tp&&
movel(_Tp & __t)7 movel(_Tp& __t)
8 { return static_cast<_Tp&&>(__t); }
9 
10 struct S{};
11 
12 S l;                             // lvalue (l)
13 S const cl = l;                  // const lvalue (cl)
r()14 S r() { return l; }              // rvalue (r)
cr()15 S const cr() { return l; }       // const rvalue (cr)
16 S & nl = l;                      // named lvalue reference (nl)
17 S const & ncl = l;               // named const lvalue reference (ncl)
18 S && nr = movel(l);              // named rvalue reference (nr)
19 S const && ncr = movel(l);       // named const rvalue reference (ncr)
ul()20 S & ul() { return l; }           // unnamed lvalue reference (ul)
ucl()21 S const & ucl() { return l; }    // unnamed const lvalue reference (ucl)
ur()22 S && ur() { return movel(l); }   // unnamed rvalue reference (ur)
ucr()23 S const && ucr() { return movel(l); } // unnamed const rvalue reference (ucr)
24 
l0001(const S &&)25 void l0001(const S&&) {} // { dg-message "" }
26 
l0010(S &&)27 void l0010(S&&) {} // { dg-message "" }
28 
l0011(S &&)29 void l0011(S&&) {} // { dg-message "" }
30 void l0011(const S&&);
31 
l0100(const S &)32 void l0100(const S&) {}
33 
l0101(const S &)34 void l0101(const S&) {}
35 void l0101(const S&&);
36 
l0110(const S &)37 void l0110(const S&) {}
38 void l0110(S&&);
39 
l0111(const S &)40 void l0111(const S&) {}
41 void l0111(S&&);
42 void l0111(const S&&);
43 
l1000(S &)44 void l1000(S&) {}
45 
l1001(S &)46 void l1001(S&) {}
47 void l1001(const S&&);
48 
l1010(S &)49 void l1010(S&) {}
50 void l1010(S&&);
51 
l1011(S &)52 void l1011(S&) {}
53 void l1011(S&&);
54 void l1011(const S&&);
55 
l1100(S &)56 void l1100(S&) {}
57 void l1100(const S&);
58 
l1101(S &)59 void l1101(S&) {}
60 void l1101(const S&);
61 void l1101(const S&&);
62 
l1110(S &)63 void l1110(S&) {}
64 void l1110(const S&);
65 void l1110(S&&);
66 
l1111(S &)67 void l1111(S&) {}
68 void l1111(const S&);
69 void l1111(S&&);
70 void l1111(const S&&);
71 
cl0001(const S &&)72 void cl0001(const S&&) {} // { dg-message "" }
73 
74 void cl0011(S&&);
cl0011(const S &&)75 void cl0011(const S&&) {} // { dg-message "" }
76 
cl0100(const S &)77 void cl0100(const S&) {}
78 
cl0101(const S &)79 void cl0101(const S&) {}
80 void cl0101(const S&&);
81 
cl0110(const S &)82 void cl0110(const S&) {}
83 void cl0110(S&&);
84 
cl0111(const S &)85 void cl0111(const S&) {}
86 void cl0111(S&&);
87 void cl0111(const S&&);
88 
89 void cl1001(S&);
cl1001(const S &&)90 void cl1001(const S&&) {} // { dg-message "" }
91 
92 void cl1011(S&);
93 void cl1011(S&&);
cl1011(const S &&)94 void cl1011(const S&&) {} // { dg-message "" }
95 
96 void cl1100(S&);
cl1100(const S &)97 void cl1100(const S&) {}
98 
99 void cl1101(S&);
cl1101(const S &)100 void cl1101(const S&) {}
101 void cl1101(const S&&);
102 
103 void cl1110(S&);
cl1110(const S &)104 void cl1110(const S&) {}
105 void cl1110(S&&);
106 
107 void cl1111(S&);
cl1111(const S &)108 void cl1111(const S&) {}
109 void cl1111(S&&);
110 void cl1111(const S&&);
111 
r0001(const S &&)112 void r0001(const S&&) {}
113 
r0010(S &&)114 void r0010(S&&) {}
115 
r0011(S &&)116 void r0011(S&&) {}
117 void r0011(const S&&);
118 
r0100(const S &)119 void r0100(const S&) {}
120 
121 void r0101(const S&);
r0101(const S &&)122 void r0101(const S&&) {}
123 
124 void r0110(const S&);
r0110(S &&)125 void r0110(S&&) {}
126 
127 void r0111(const S&);
r0111(S &&)128 void r0111(S&&) {}
129 void r0111(const S&&);
130 
131 void r1001(S&);
r1001(const S &&)132 void r1001(const S&&) {}
133 
134 void r1010(S&);
r1010(S &&)135 void r1010(S&&) {}
136 
137 void r1011(S&);
r1011(S &&)138 void r1011(S&&) {}
139 void r1011(const S&&);
140 
141 void r1100(S&);
r1100(const S &)142 void r1100(const S&) {}
143 
144 void r1101(S&);
145 void r1101(const S&);
r1101(const S &&)146 void r1101(const S&&) {}
147 
148 void r1110(S&);
149 void r1110(const S&);
r1110(S &&)150 void r1110(S&&) {}
151 
152 void r1111(S&);
153 void r1111(const S&);
r1111(S &&)154 void r1111(S&&) {}
155 void r1111(const S&&);
156 
cr0001(const S &&)157 void cr0001(const S&&) {}
158 
159 void cr0011(S&&);
cr0011(const S &&)160 void cr0011(const S&&) {}
161 
cr0100(const S &)162 void cr0100(const S&) {}
163 
164 void cr0101(const S&);
cr0101(const S &&)165 void cr0101(const S&&) {}
166 
cr0110(const S &)167 void cr0110(const S&) {}
168 void cr0110(S&&);
169 
170 void cr0111(const S&);
171 void cr0111(S&&);
cr0111(const S &&)172 void cr0111(const S&&) {}
173 
174 void cr1001(S&);
cr1001(const S &&)175 void cr1001(const S&&) {}
176 
177 void cr1011(S&);
178 void cr1011(S&&);
cr1011(const S &&)179 void cr1011(const S&&) {}
180 
181 void cr1100(S&);
cr1100(const S &)182 void cr1100(const S&) {}
183 
184 void cr1101(S&);
185 void cr1101(const S&);
cr1101(const S &&)186 void cr1101(const S&&) {}
187 
188 void cr1110(S&);
cr1110(const S &)189 void cr1110(const S&) {}
190 void cr1110(S&&);
191 
192 void cr1111(S&);
193 void cr1111(const S&);
194 void cr1111(S&&);
cr1111(const S &&)195 void cr1111(const S&&) {}
196 
nl0001(const S &&)197 void nl0001(const S&&) {} // { dg-message "" }
198 
nl0010(S &&)199 void nl0010(S&&) {} // { dg-message "" }
200 
nl0011(S &&)201 void nl0011(S&&) {} // { dg-message "" }
202 void nl0011(const S&&);
203 
nl0100(const S &)204 void nl0100(const S&) {}
205 
nl0101(const S &)206 void nl0101(const S&) {}
207 void nl0101(const S&&);
208 
nl0110(const S &)209 void nl0110(const S&) {}
210 void nl0110(S&&);
211 
nl0111(const S &)212 void nl0111(const S&) {}
213 void nl0111(S&&);
214 void nl0111(const S&&);
215 
nl1000(S &)216 void nl1000(S&) {}
217 
nl1001(S &)218 void nl1001(S&) {}
219 void nl1001(const S&&);
220 
nl1010(S &)221 void nl1010(S&) {}
222 void nl1010(S&&);
223 
nl1011(S &)224 void nl1011(S&) {}
225 void nl1011(S&&);
226 void nl1011(const S&&);
227 
nl1100(S &)228 void nl1100(S&) {}
229 void nl1100(const S&);
230 
nl1101(S &)231 void nl1101(S&) {}
232 void nl1101(const S&);
233 void nl1101(const S&&);
234 
nl1110(S &)235 void nl1110(S&) {}
236 void nl1110(const S&);
237 void nl1110(S&&);
238 
nl1111(S &)239 void nl1111(S&) {}
240 void nl1111(const S&);
241 void nl1111(S&&);
242 void nl1111(const S&&);
243 
ncl0001(const S &&)244 void ncl0001(const S&&) {} // { dg-message "" }
245 
246 void ncl0011(S&&);
ncl0011(const S &&)247 void ncl0011(const S&&) {} // { dg-message "" }
248 
ncl0100(const S &)249 void ncl0100(const S&) {}
250 
ncl0101(const S &)251 void ncl0101(const S&) {}
252 void ncl0101(const S&&);
253 
ncl0110(const S &)254 void ncl0110(const S&) {}
255 void ncl0110(S&&);
256 
ncl0111(const S &)257 void ncl0111(const S&) {}
258 void ncl0111(S&&);
259 void ncl0111(const S&&);
260 
261 void ncl1001(S&);
ncl1001(const S &&)262 void ncl1001(const S&&) {} // { dg-message "" }
263 
264 void ncl1011(S&);
265 void ncl1011(S&&);
ncl1011(const S &&)266 void ncl1011(const S&&) {} // { dg-message "" }
267 
268 void ncl1100(S&);
ncl1100(const S &)269 void ncl1100(const S&) {}
270 
271 void ncl1101(S&);
ncl1101(const S &)272 void ncl1101(const S&) {}
273 void ncl1101(const S&&);
274 
275 void ncl1110(S&);
ncl1110(const S &)276 void ncl1110(const S&) {}
277 void ncl1110(S&&);
278 
279 void ncl1111(S&);
ncl1111(const S &)280 void ncl1111(const S&) {}
281 void ncl1111(S&&);
282 void ncl1111(const S&&);
283 
nr0001(const S &&)284 void nr0001(const S&&) {} // { dg-message "" }
285 
nr0010(S &&)286 void nr0010(S&&) {} // { dg-message "" }
287 
nr0011(S &&)288 void nr0011(S&&) {} // { dg-message "" }
289 void nr0011(const S&&);
290 
nr0100(const S &)291 void nr0100(const S&) {}
292 
nr0101(const S &)293 void nr0101(const S&) {}
294 void nr0101(const S&&);
295 
nr0110(const S &)296 void nr0110(const S&) {}
297 void nr0110(S&&);
298 
nr0111(const S &)299 void nr0111(const S&) {}
300 void nr0111(S&&);
301 void nr0111(const S&&);
302 
nr1000(S &)303 void nr1000(S&) {}
304 
nr1001(S &)305 void nr1001(S&) {}
306 void nr1001(const S&&);
307 
nr1010(S &)308 void nr1010(S&) {}
309 void nr1010(S&&);
310 
nr1011(S &)311 void nr1011(S&) {}
312 void nr1011(S&&);
313 void nr1011(const S&&);
314 
nr1100(S &)315 void nr1100(S&) {}
316 void nr1100(const S&);
317 
nr1101(S &)318 void nr1101(S&) {}
319 void nr1101(const S&);
320 void nr1101(const S&&);
321 
nr1110(S &)322 void nr1110(S&) {}
323 void nr1110(const S&);
324 void nr1110(S&&);
325 
nr1111(S &)326 void nr1111(S&) {}
327 void nr1111(const S&);
328 void nr1111(S&&);
329 void nr1111(const S&&);
330 
ncr0001(const S &&)331 void ncr0001(const S&&) {} // { dg-message "" }
332 
333 void ncr0011(S&&);
ncr0011(const S &&)334 void ncr0011(const S&&) {} // { dg-message "" }
335 
ncr0100(const S &)336 void ncr0100(const S&) {}
337 
ncr0101(const S &)338 void ncr0101(const S&) {}
339 void ncr0101(const S&&);
340 
ncr0110(const S &)341 void ncr0110(const S&) {}
342 void ncr0110(S&&);
343 
ncr0111(const S &)344 void ncr0111(const S&) {}
345 void ncr0111(S&&);
346 void ncr0111(const S&&);
347 
348 void ncr1001(S&);
ncr1001(const S &&)349 void ncr1001(const S&&) {} // { dg-message "" }
350 
351 void ncr1011(S&);
352 void ncr1011(S&&);
ncr1011(const S &&)353 void ncr1011(const S&&) {} // { dg-message "" }
354 
355 void ncr1100(S&);
ncr1100(const S &)356 void ncr1100(const S&) {}
357 
358 void ncr1101(S&);
ncr1101(const S &)359 void ncr1101(const S&) {}
360 void ncr1101(const S&&);
361 
362 void ncr1110(S&);
ncr1110(const S &)363 void ncr1110(const S&) {}
364 void ncr1110(S&&);
365 
366 void ncr1111(S&);
ncr1111(const S &)367 void ncr1111(const S&) {}
368 void ncr1111(S&&);
369 void ncr1111(const S&&);
370 
ul0001(const S &&)371 void ul0001(const S&&) {} // { dg-message "" }
372 
ul0010(S &&)373 void ul0010(S&&) {} // { dg-message "" }
374 
ul0011(S &&)375 void ul0011(S&&) {} // { dg-message "" }
376 void ul0011(const S&&);
377 
ul0100(const S &)378 void ul0100(const S&) {}
379 
ul0101(const S &)380 void ul0101(const S&) {}
381 void ul0101(const S&&);
382 
ul0110(const S &)383 void ul0110(const S&) {}
384 void ul0110(S&&);
385 
ul0111(const S &)386 void ul0111(const S&) {}
387 void ul0111(S&&);
388 void ul0111(const S&&);
389 
ul1000(S &)390 void ul1000(S&) {}
391 
ul1001(S &)392 void ul1001(S&) {}
393 void ul1001(const S&&);
394 
ul1010(S &)395 void ul1010(S&) {}
396 void ul1010(S&&);
397 
ul1011(S &)398 void ul1011(S&) {}
399 void ul1011(S&&);
400 void ul1011(const S&&);
401 
ul1100(S &)402 void ul1100(S&) {}
403 void ul1100(const S&);
404 
ul1101(S &)405 void ul1101(S&) {}
406 void ul1101(const S&);
407 void ul1101(const S&&);
408 
ul1110(S &)409 void ul1110(S&) {}
410 void ul1110(const S&);
411 void ul1110(S&&);
412 
ul1111(S &)413 void ul1111(S&) {}
414 void ul1111(const S&);
415 void ul1111(S&&);
416 void ul1111(const S&&);
417 
ucl0001(const S &&)418 void ucl0001(const S&&) {} // { dg-message "" }
419 
420 void ucl0011(S&&);
ucl0011(const S &&)421 void ucl0011(const S&&) {} // { dg-message "" }
422 
ucl0100(const S &)423 void ucl0100(const S&) {}
424 
ucl0101(const S &)425 void ucl0101(const S&) {}
426 void ucl0101(const S&&);
427 
ucl0110(const S &)428 void ucl0110(const S&) {}
429 void ucl0110(S&&);
430 
ucl0111(const S &)431 void ucl0111(const S&) {}
432 void ucl0111(S&&);
433 void ucl0111(const S&&);
434 
435 void ucl1001(S&);
ucl1001(const S &&)436 void ucl1001(const S&&) {} // { dg-message "" }
437 
438 void ucl1011(S&);
439 void ucl1011(S&&);
ucl1011(const S &&)440 void ucl1011(const S&&) {} // { dg-message "" }
441 
442 void ucl1100(S&);
ucl1100(const S &)443 void ucl1100(const S&) {}
444 
445 void ucl1101(S&);
ucl1101(const S &)446 void ucl1101(const S&) {}
447 void ucl1101(const S&&);
448 
449 void ucl1110(S&);
ucl1110(const S &)450 void ucl1110(const S&) {}
451 void ucl1110(S&&);
452 
453 void ucl1111(S&);
ucl1111(const S &)454 void ucl1111(const S&) {}
455 void ucl1111(S&&);
456 void ucl1111(const S&&);
457 
ur0001(const S &&)458 void ur0001(const S&&) {}
459 
ur0010(S &&)460 void ur0010(S&&) {}
461 
ur0011(S &&)462 void ur0011(S&&) {}
463 void ur0011(const S&&);
464 
ur0100(const S &)465 void ur0100(const S&) {}
466 
467 void ur0101(const S&);
ur0101(const S &&)468 void ur0101(const S&&) {}
469 
470 void ur0110(const S&);
ur0110(S &&)471 void ur0110(S&&) {}
472 
473 void ur0111(const S&);
ur0111(S &&)474 void ur0111(S&&) {}
475 void ur0111(const S&&);
476 
477 void ur1001(S&);
ur1001(const S &&)478 void ur1001(const S&&) {}
479 
480 void ur1010(S&);
ur1010(S &&)481 void ur1010(S&&) {}
482 
483 void ur1011(S&);
ur1011(S &&)484 void ur1011(S&&) {}
485 void ur1011(const S&&);
486 
487 void ur1100(S&);
ur1100(const S &)488 void ur1100(const S&) {}
489 
490 void ur1101(S&);
491 void ur1101(const S&);
ur1101(const S &&)492 void ur1101(const S&&) {}
493 
494 void ur1110(S&);
495 void ur1110(const S&);
ur1110(S &&)496 void ur1110(S&&) {}
497 
498 void ur1111(S&);
499 void ur1111(const S&);
ur1111(S &&)500 void ur1111(S&&) {}
501 void ur1111(const S&&);
502 
ucr0001(const S &&)503 void ucr0001(const S&&) {}
504 
505 void ucr0011(S&&);
ucr0011(const S &&)506 void ucr0011(const S&&) {}
507 
ucr0100(const S &)508 void ucr0100(const S&) {}
509 
510 void ucr0101(const S&);
ucr0101(const S &&)511 void ucr0101(const S&&) {}
512 
ucr0110(const S &)513 void ucr0110(const S&) {}
514 void ucr0110(S&&);
515 
516 void ucr0111(const S&);
517 void ucr0111(S&&);
ucr0111(const S &&)518 void ucr0111(const S&&) {}
519 
520 void ucr1001(S&);
ucr1001(const S &&)521 void ucr1001(const S&&) {}
522 
523 void ucr1011(S&);
524 void ucr1011(S&&);
ucr1011(const S &&)525 void ucr1011(const S&&) {}
526 
527 void ucr1100(S&);
ucr1100(const S &)528 void ucr1100(const S&) {}
529 
530 void ucr1101(S&);
531 void ucr1101(const S&);
ucr1101(const S &&)532 void ucr1101(const S&&) {}
533 
534 void ucr1110(S&);
ucr1110(const S &)535 void ucr1110(const S&) {}
536 void ucr1110(S&&);
537 
538 void ucr1111(S&);
539 void ucr1111(const S&);
540 void ucr1111(S&&);
ucr1111(const S &&)541 void ucr1111(const S&&) {}
542 
543 
main()544 int main()
545 {
546   l0001(l); // { dg-error "lvalue" }
547   l0010(l); // { dg-error "lvalue" }
548   l0011(l); // { dg-error "lvalue" }
549   l0100(l);
550   l0101(l);
551   l0110(l);
552   l0111(l);
553   l1000(l);
554   l1001(l);
555   l1010(l);
556   l1011(l);
557   l1100(l);
558   l1101(l);
559   l1110(l);
560   l1111(l);
561   cl0001(cl); // { dg-error "lvalue" }
562   cl0011(cl); // { dg-error "lvalue" }
563   cl0100(cl);
564   cl0101(cl);
565   cl0110(cl);
566   cl0111(cl);
567   cl1001(cl); // { dg-error "lvalue" }
568   cl1011(cl); // { dg-error "lvalue" }
569   cl1100(cl);
570   cl1101(cl);
571   cl1110(cl);
572   cl1111(cl);
573   r0001(r());
574   r0010(r());
575   r0011(r());
576   r0100(r());
577   r0101(r());
578   r0110(r());
579   r0111(r());
580   r1001(r());
581   r1010(r());
582   r1011(r());
583   r1100(r());
584   r1101(r());
585   r1110(r());
586   r1111(r());
587   cr0001(cr());
588   cr0011(cr());
589   cr0100(cr());
590   cr0101(cr());
591   cr0110(cr());
592   cr0111(cr());
593   cr1001(cr());
594   cr1011(cr());
595   cr1100(cr());
596   cr1101(cr());
597   cr1110(cr());
598   cr1111(cr());
599   nl0001(nl); // { dg-error "lvalue" }
600   nl0010(nl); // { dg-error "lvalue" }
601   nl0011(nl); // { dg-error "lvalue" }
602   nl0100(nl);
603   nl0101(nl);
604   nl0110(nl);
605   nl0111(nl);
606   nl1000(nl);
607   nl1001(nl);
608   nl1010(nl);
609   nl1011(nl);
610   nl1100(nl);
611   nl1101(nl);
612   nl1110(nl);
613   nl1111(nl);
614   ncl0001(ncl); // { dg-error "lvalue" }
615   ncl0011(ncl); // { dg-error "lvalue" }
616   ncl0100(ncl);
617   ncl0101(ncl);
618   ncl0110(ncl);
619   ncl0111(ncl);
620   ncl1001(ncl); // { dg-error "lvalue" }
621   ncl1011(ncl); // { dg-error "lvalue" }
622   ncl1100(ncl);
623   ncl1101(ncl);
624   ncl1110(ncl);
625   ncl1111(ncl);
626   nr0001(nr); // { dg-error "lvalue" }
627   nr0010(nr); // { dg-error "lvalue" }
628   nr0011(nr); // { dg-error "lvalue" }
629   nr0100(nr);
630   nr0101(nr);
631   nr0110(nr);
632   nr0111(nr);
633   nr1000(nr);
634   nr1001(nr);
635   nr1010(nr);
636   nr1011(nr);
637   nr1100(nr);
638   nr1101(nr);
639   nr1110(nr);
640   nr1111(nr);
641   ncr0001(ncr); // { dg-error "lvalue" }
642   ncr0011(ncr); // { dg-error "lvalue" }
643   ncr0100(ncr);
644   ncr0101(ncr);
645   ncr0110(ncr);
646   ncr0111(ncr);
647   ncr1001(ncr); // { dg-error "lvalue" }
648   ncr1011(ncr); // { dg-error "lvalue" }
649   ncr1100(ncr);
650   ncr1101(ncr);
651   ncr1110(ncr);
652   ncr1111(ncr);
653   ul0001(ul()); // { dg-error "lvalue" }
654   ul0010(ul()); // { dg-error "lvalue" }
655   ul0011(ul()); // { dg-error "lvalue" }
656   ul0100(ul());
657   ul0101(ul());
658   ul0110(ul());
659   ul0111(ul());
660   ul1000(ul());
661   ul1001(ul());
662   ul1010(ul());
663   ul1011(ul());
664   ul1100(ul());
665   ul1101(ul());
666   ul1110(ul());
667   ul1111(ul());
668   ucl0001(ucl()); // { dg-error "lvalue" }
669   ucl0011(ucl()); // { dg-error "lvalue" }
670   ucl0100(ucl());
671   ucl0101(ucl());
672   ucl0110(ucl());
673   ucl0111(ucl());
674   ucl1001(ucl()); // { dg-error "lvalue" }
675   ucl1011(ucl()); // { dg-error "lvalue" }
676   ucl1100(ucl());
677   ucl1101(ucl());
678   ucl1110(ucl());
679   ucl1111(ucl());
680   ur0001(ur());
681   ur0010(ur());
682   ur0011(ur());
683   ur0100(ur());
684   ur0101(ur());
685   ur0110(ur());
686   ur0111(ur());
687   ur1001(ur());
688   ur1010(ur());
689   ur1011(ur());
690   ur1100(ur());
691   ur1101(ur());
692   ur1110(ur());
693   ur1111(ur());
694   ucr0001(ucr());
695   ucr0011(ucr());
696   ucr0100(ucr());
697   ucr0101(ucr());
698   ucr0110(ucr());
699   ucr0111(ucr());
700   ucr1001(ucr());
701   ucr1011(ucr());
702   ucr1100(ucr());
703   ucr1101(ucr());
704   ucr1110(ucr());
705   ucr1111(ucr());
706 
707   return 0;
708 }
709