// I, Howard Hinnant, hereby place this code in the public domain. // Test overload resolution among reference types // { dg-do compile { target c++11 } } // { dg-skip-if "packed attribute missing for struct one/three/five/seven" { "epiphany-*-*" } { "*" } { "" } } template struct sa; template <> struct sa {}; struct one {long x[1];}; struct two {long x[2];}; struct three {long x[3];}; struct four {long x[4];}; struct five {long x[5];}; struct six {long x[6];}; struct seven {long x[7];}; struct eight {long x[8];}; struct A { A(); A(const volatile A&&); }; A source(); const A c_source(); volatile A v_source(); const volatile A cv_source(); // 3 at a time one sink_3_123( A&); two sink_3_123(const A&); three sink_3_123(volatile A&); int test3_123() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t5; sa t6; return 0; } one sink_3_124( A&); two sink_3_124(const A&); four sink_3_124(const volatile A&); int test3_124() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; return 0; } one sink_3_125( A&); two sink_3_125(const A&); five sink_3_125( A&&); int test3_125() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; return 0; } one sink_3_126( A&); two sink_3_126(const A&); six sink_3_126(const A&&); int test3_126() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; return 0; } one sink_3_127( A&); two sink_3_127(const A&); seven sink_3_127(volatile A&&); int test3_127() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; sa t7; return 0; } one sink_3_128( A&); two sink_3_128(const A&); eight sink_3_128(const volatile A&&); int test3_128() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; sa t7; sa t8; return 0; } one sink_3_134( A&); three sink_3_134(volatile A&); four sink_3_134(const volatile A&); int test3_134() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; return 0; } one sink_3_135( A&); three sink_3_135(volatile A&); five sink_3_135( A&&); int test3_135() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; return 0; } one sink_3_136( A&); three sink_3_136(volatile A&); six sink_3_136(const A&&); int test3_136() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t6; return 0; } one sink_3_137( A&); three sink_3_137(volatile A&); seven sink_3_137(volatile A&&); int test3_137() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t7; return 0; } one sink_3_138( A&); three sink_3_138(volatile A&); eight sink_3_138(const volatile A&&); int test3_138() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t6; sa t7; sa t8; return 0; } one sink_3_145( A&); four sink_3_145(const volatile A&); five sink_3_145( A&&); int test3_145() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; return 0; } one sink_3_146( A&); four sink_3_146(const volatile A&); six sink_3_146(const A&&); int test3_146() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; return 0; } one sink_3_147( A&); four sink_3_147(const volatile A&); seven sink_3_147(volatile A&&); int test3_147() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t7; return 0; } one sink_3_148( A&); four sink_3_148(const volatile A&); eight sink_3_148(const volatile A&&); int test3_148() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; sa t7; sa t8; return 0; } one sink_3_156( A&); five sink_3_156( A&&); six sink_3_156(const A&&); int test3_156() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t5; sa t6; return 0; } one sink_3_157( A&); five sink_3_157( A&&); seven sink_3_157(volatile A&&); int test3_157() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t5; sa t7; return 0; } one sink_3_158( A&); five sink_3_158( A&&); eight sink_3_158(const volatile A&&); int test3_158() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t5; sa t6; sa t7; sa t8; return 0; } one sink_3_167( A&); six sink_3_167(const A&&); seven sink_3_167(volatile A&&); int test3_167() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t6; sa t7; return 0; } one sink_3_168( A&); six sink_3_168(const A&&); eight sink_3_168(const volatile A&&); int test3_168() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t5; sa t6; sa t7; sa t8; return 0; } one sink_3_178( A&); seven sink_3_178(volatile A&&); eight sink_3_178(const volatile A&&); int test3_178() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t5; sa t6; sa t7; sa t8; return 0; } two sink_3_234(const A&); three sink_3_234(volatile A&); four sink_3_234(const volatile A&); int test3_234() { A a; const A ca; volatile A va; const volatile A cva; sa t2; sa t3; sa t4; sa t5; sa t6; return 0; } two sink_3_235(const A&); three sink_3_235(volatile A&); five sink_3_235( A&&); int test3_235() { A a; const A ca; volatile A va; const volatile A cva; sa t2; sa t3; sa t5; sa t6; return 0; } two sink_3_236(const A&); three sink_3_236(volatile A&); six sink_3_236(const A&&); int test3_236() { A a; const A ca; volatile A va; const volatile A cva; sa t2; sa t3; sa t5; sa t6; return 0; } two sink_3_237(const A&); three sink_3_237(volatile A&); seven sink_3_237(volatile A&&); int test3_237() { A a; const A ca; volatile A va; const volatile A cva; sa t2; sa t3; sa t5; sa t6; sa t7; return 0; } two sink_3_238(const A&); three sink_3_238(volatile A&); eight sink_3_238(const volatile A&&); int test3_238() { A a; const A ca; volatile A va; const volatile A cva; sa t2; sa t3; sa t5; sa t6; sa t7; sa t8; return 0; } two sink_3_245(const A&); four sink_3_245(const volatile A&); five sink_3_245( A&&); int test3_245() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; return 0; } two sink_3_246(const A&); four sink_3_246(const volatile A&); six sink_3_246(const A&&); int test3_246() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; return 0; } two sink_3_247(const A&); four sink_3_247(const volatile A&); seven sink_3_247(volatile A&&); int test3_247() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; sa t7; return 0; } two sink_3_248(const A&); four sink_3_248(const volatile A&); eight sink_3_248(const volatile A&&); int test3_248() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; sa t7; sa t8; return 0; } two sink_3_256(const A&); five sink_3_256( A&&); six sink_3_256(const A&&); int test3_256() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; return 0; } two sink_3_257(const A&); five sink_3_257( A&&); seven sink_3_257(volatile A&&); int test3_257() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; sa t7; return 0; } two sink_3_258(const A&); five sink_3_258( A&&); eight sink_3_258(const volatile A&&); int test3_258() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; sa t7; sa t8; return 0; } two sink_3_267(const A&); six sink_3_267(const A&&); seven sink_3_267(volatile A&&); int test3_267() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t6; sa t7; return 0; } two sink_3_268(const A&); six sink_3_268(const A&&); eight sink_3_268(const volatile A&&); int test3_268() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; sa t7; sa t8; return 0; } two sink_3_278(const A&); seven sink_3_278(volatile A&&); eight sink_3_278(const volatile A&&); int test3_278() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t5; sa t6; sa t7; sa t8; return 0; } three sink_3_345(volatile A&); four sink_3_345(const volatile A&); five sink_3_345( A&&); int test3_345() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; return 0; } three sink_3_346(volatile A&); four sink_3_346(const volatile A&); six sink_3_346(const A&&); int test3_346() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; return 0; } three sink_3_347(volatile A&); four sink_3_347(const volatile A&); seven sink_3_347(volatile A&&); int test3_347() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t7; return 0; } three sink_3_348(volatile A&); four sink_3_348(const volatile A&); eight sink_3_348(const volatile A&&); int test3_348() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; sa t7; sa t8; return 0; } three sink_3_356(volatile A&); five sink_3_356( A&&); six sink_3_356(const A&&); int test3_356() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t6; return 0; } three sink_3_357(volatile A&); five sink_3_357( A&&); seven sink_3_357(volatile A&&); int test3_357() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t7; return 0; } three sink_3_358(volatile A&); five sink_3_358( A&&); eight sink_3_358(const volatile A&&); int test3_358() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t6; sa t7; sa t8; return 0; } three sink_3_367(volatile A&); six sink_3_367(const A&&); seven sink_3_367(volatile A&&); int test3_367() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t6; sa t7; return 0; } three sink_3_368(volatile A&); six sink_3_368(const A&&); eight sink_3_368(const volatile A&&); int test3_368() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t6; sa t7; sa t8; return 0; } three sink_3_378(volatile A&); seven sink_3_378(volatile A&&); eight sink_3_378(const volatile A&&); int test3_378() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t3; sa t5; sa t6; sa t7; sa t8; return 0; } four sink_3_456(const volatile A&); five sink_3_456( A&&); six sink_3_456(const A&&); int test3_456() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; return 0; } four sink_3_457(const volatile A&); five sink_3_457( A&&); seven sink_3_457(volatile A&&); int test3_457() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t7; return 0; } four sink_3_458(const volatile A&); five sink_3_458( A&&); eight sink_3_458(const volatile A&&); int test3_458() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; sa t7; sa t8; return 0; } four sink_3_467(const volatile A&); six sink_3_467(const A&&); seven sink_3_467(volatile A&&); int test3_467() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t6; sa t7; return 0; } four sink_3_468(const volatile A&); six sink_3_468(const A&&); eight sink_3_468(const volatile A&&); int test3_468() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; sa t7; sa t8; return 0; } four sink_3_478(const volatile A&); seven sink_3_478(volatile A&&); eight sink_3_478(const volatile A&&); int test3_478() { A a; const A ca; volatile A va; const volatile A cva; sa t1; sa t2; sa t3; sa t4; sa t5; sa t6; sa t7; sa t8; return 0; } five sink_3_567( A&&); six sink_3_567(const A&&); seven sink_3_567(volatile A&&); int test3_567() { A a; const A ca; volatile A va; const volatile A cva; sa t5; sa t6; sa t7; return 0; } five sink_3_568( A&&); six sink_3_568(const A&&); eight sink_3_568(const volatile A&&); int test3_568() { A a; const A ca; volatile A va; const volatile A cva; sa t5; sa t6; sa t7; sa t8; return 0; } five sink_3_578( A&&); seven sink_3_578(volatile A&&); eight sink_3_578(const volatile A&&); int test3_578() { A a; const A ca; volatile A va; const volatile A cva; sa t5; sa t6; sa t7; sa t8; return 0; } six sink_3_678(const A&&); seven sink_3_678(volatile A&&); eight sink_3_678(const volatile A&&); int test3_678() { A a; const A ca; volatile A va; const volatile A cva; sa t6; sa t7; sa t8; return 0; } int main() { return test3_123() + test3_124() + test3_125() + test3_126() + test3_127() + test3_128() + test3_134() + test3_135() + test3_136() + test3_137() + test3_138() + test3_145() + test3_146() + test3_147() + test3_148() + test3_156() + test3_157() + test3_158() + test3_167() + test3_168() + test3_178() + test3_234() + test3_235() + test3_236() + test3_237() + test3_238() + test3_245() + test3_246() + test3_247() + test3_248() + test3_256() + test3_257() + test3_258() + test3_267() + test3_268() + test3_278() + test3_345() + test3_346() + test3_347() + test3_348() + test3_356() + test3_357() + test3_358() + test3_367() + test3_368() + test3_378() + test3_456() + test3_457() + test3_458() + test3_467() + test3_468() + test3_478() + test3_567() + test3_568() + test3_578() + test3_678(); }