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