| Index: gcc/gcc/testsuite/g++.dg/cpp0x/rv4n.C
|
| diff --git a/gcc/gcc/testsuite/g++.dg/cpp0x/rv4n.C b/gcc/gcc/testsuite/g++.dg/cpp0x/rv4n.C
|
| index b88e3f7706175de0a3339e4eb6076bd443ca1b24..cf627aed3f0737d79a5a02c302011ff61d33170f 100644
|
| --- a/gcc/gcc/testsuite/g++.dg/cpp0x/rv4n.C
|
| +++ b/gcc/gcc/testsuite/g++.dg/cpp0x/rv4n.C
|
| @@ -1,6 +1,6 @@
|
| // I, Howard Hinnant, hereby place this code in the public domain.
|
|
|
| -// Test overlaod resolution among referece types
|
| +// Test overload resolution among reference types
|
|
|
| // { dg-do compile }
|
| // { dg-options "-std=c++0x" }
|
| @@ -96,6 +96,21 @@ int test4_1237()
|
| return 0;
|
| }
|
|
|
| +one sink_4_1238( A&);
|
| +two sink_4_1238(const A&);
|
| +three sink_4_1238(volatile A&);
|
| +eight sink_4_1238(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1238()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1238(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| one sink_4_1245( A&); // { dg-message "candidates" }
|
| two sink_4_1245(const A&); // { dg-message "note" }
|
| four sink_4_1245(const volatile A&); // { dg-message "note" }
|
| @@ -164,7 +179,7 @@ int test4_1256()
|
| one sink_4_1257( A&); // { dg-message "candidates" }
|
| two sink_4_1257(const A&); // { dg-message "note" }
|
| five sink_4_1257( A&&); // { dg-message "note" }
|
| -seven sink_4_1257(volatile A&&); // { dg-message "note" }
|
| +seven sink_4_1257(volatile A&&); // { dg-message "" }
|
|
|
| int test4_1257()
|
| {
|
| @@ -172,15 +187,32 @@ int test4_1257()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_1257(va); // { dg-error "lvalue" }
|
| sink_4_1257(cva); // { dg-error "no match" }
|
| sink_4_1257(cv_source()); // { dg-error "no match" }
|
| return 0;
|
| }
|
|
|
| +one sink_4_1258( A&);
|
| +two sink_4_1258(const A&);
|
| +five sink_4_1258( A&&);
|
| +eight sink_4_1258(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1258()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1258(va); // { dg-error "lvalue" }
|
| + sink_4_1258(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| one sink_4_1267( A&); // { dg-message "candidates" }
|
| two sink_4_1267(const A&); // { dg-message "note" }
|
| six sink_4_1267(const A&&); // { dg-message "note" }
|
| -seven sink_4_1267(volatile A&&); // { dg-message "note" }
|
| +seven sink_4_1267(volatile A&&); // { dg-message "" }
|
|
|
| int test4_1267()
|
| {
|
| @@ -188,12 +220,45 @@ int test4_1267()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_1267(va); // { dg-error "lvalue" }
|
| sink_4_1267(cva); // { dg-error "no match" }
|
| sink_4_1267(source()); // { dg-error "ambiguous" }
|
| sink_4_1267(cv_source()); // { dg-error "no match" }
|
| return 0;
|
| }
|
|
|
| +one sink_4_1268( A&);
|
| +two sink_4_1268(const A&);
|
| +six sink_4_1268(const A&&);
|
| +eight sink_4_1268(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1268()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1268(va); // { dg-error "lvalue" }
|
| + sink_4_1268(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| +one sink_4_1278( A&);
|
| +two sink_4_1278(const A&);
|
| +seven sink_4_1278(volatile A&&); // { dg-message "" }
|
| +eight sink_4_1278(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1278()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1278(va); // { dg-error "lvalue" }
|
| + sink_4_1278(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| one sink_4_1345( A&); // { dg-message "candidates" }
|
| three sink_4_1345(volatile A&); // { dg-message "note" }
|
| four sink_4_1345(const volatile A&); // { dg-message "note" }
|
| @@ -246,7 +311,7 @@ int test4_1347()
|
| one sink_4_1356( A&); // { dg-message "candidates" }
|
| three sink_4_1356(volatile A&); // { dg-message "note" }
|
| five sink_4_1356( A&&); // { dg-message "note" }
|
| -six sink_4_1356(const A&&); // { dg-message "note" }
|
| +six sink_4_1356(const A&&); // { dg-message "" }
|
|
|
| int test4_1356()
|
| {
|
| @@ -254,6 +319,7 @@ int test4_1356()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_1356(ca); // { dg-error "lvalue" }
|
| sink_4_1356(cva); // { dg-error "no match" }
|
| sink_4_1356(v_source()); // { dg-error "no match" }
|
| sink_4_1356(cv_source()); // { dg-error "no match" }
|
| @@ -278,9 +344,25 @@ int test4_1357()
|
| return 0;
|
| }
|
|
|
| +one sink_4_1358( A&);
|
| +three sink_4_1358(volatile A&);
|
| +five sink_4_1358( A&&);
|
| +eight sink_4_1358(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1358()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1358(ca); // { dg-error "lvalue" }
|
| + sink_4_1358(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| one sink_4_1367( A&); // { dg-message "candidates" }
|
| three sink_4_1367(volatile A&); // { dg-message "note" }
|
| -six sink_4_1367(const A&&); // { dg-message "note" }
|
| +six sink_4_1367(const A&&); // { dg-message "" }
|
| seven sink_4_1367(volatile A&&); // { dg-message "note" }
|
|
|
| int test4_1367()
|
| @@ -289,12 +371,45 @@ int test4_1367()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_1367(ca); // { dg-error "lvalue" }
|
| sink_4_1367(cva); // { dg-error "no match" }
|
| sink_4_1367(source()); // { dg-error "ambiguous" }
|
| sink_4_1367(cv_source()); // { dg-error "no match" }
|
| return 0;
|
| }
|
|
|
| +one sink_4_1368( A&);
|
| +three sink_4_1368(volatile A&);
|
| +six sink_4_1368(const A&&); // { dg-message "" }
|
| +eight sink_4_1368(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1368()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1368(ca); // { dg-error "lvalue" }
|
| + sink_4_1368(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| +one sink_4_1378( A&);
|
| +three sink_4_1378(volatile A&);
|
| +seven sink_4_1378(volatile A&&);
|
| +eight sink_4_1378(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1378()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1378(ca); // { dg-error "lvalue" }
|
| + sink_4_1378(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| one sink_4_1456( A&); // { dg-message "candidates" }
|
| four sink_4_1456(const volatile A&); // { dg-message "note" }
|
| five sink_4_1456( A&&); // { dg-message "note" }
|
| @@ -345,8 +460,8 @@ int test4_1467()
|
|
|
| one sink_4_1567( A&); // { dg-message "candidates" }
|
| five sink_4_1567( A&&); // { dg-message "note" }
|
| -six sink_4_1567(const A&&); // { dg-message "note" }
|
| -seven sink_4_1567(volatile A&&); // { dg-message "note" }
|
| +six sink_4_1567(const A&&); // { dg-message "" }
|
| +seven sink_4_1567(volatile A&&); // { dg-message "" }
|
|
|
| int test4_1567()
|
| {
|
| @@ -354,15 +469,51 @@ int test4_1567()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_1567(ca); // { dg-error "lvalue" }
|
| + sink_4_1567(va); // { dg-error "lvalue" }
|
| sink_4_1567(cva); // { dg-error "no match" }
|
| sink_4_1567(cv_source()); // { dg-error "no match" }
|
| return 0;
|
| }
|
|
|
| +one sink_4_1568( A&);
|
| +five sink_4_1568( A&&);
|
| +six sink_4_1568(const A&&); // { dg-message "" }
|
| +eight sink_4_1568(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1568()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1568(ca); // { dg-error "lvalue" }
|
| + sink_4_1568(va); // { dg-error "lvalue" }
|
| + sink_4_1568(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| +one sink_4_1578( A&);
|
| +five sink_4_1578( A&&);
|
| +seven sink_4_1578(volatile A&&); // { dg-message "" }
|
| +eight sink_4_1578(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_1578()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_1578(ca); // { dg-error "lvalue" }
|
| + sink_4_1578(va); // { dg-error "lvalue" }
|
| + sink_4_1578(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| one sink_4_1678( A&);
|
| -six sink_4_1678(const A&&); // { dg-message "candidates" }
|
| -seven sink_4_1678(volatile A&&); // { dg-message "note" }
|
| -eight sink_4_1678(const volatile A&&); // { dg-message "note" }
|
| +six sink_4_1678(const A&&); // { dg-message "" }
|
| +seven sink_4_1678(volatile A&&); // { dg-message "" }
|
| +eight sink_4_1678(const volatile A&&); // { dg-message "" }
|
|
|
| int test4_1678()
|
| {
|
| @@ -370,6 +521,9 @@ int test4_1678()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_1678(ca); // { dg-error "lvalue" }
|
| + sink_4_1678(va); // { dg-error "lvalue" }
|
| + sink_4_1678(cva); // { dg-error "lvalue" }
|
| sink_4_1678(source()); // { dg-error "ambiguous" }
|
| return 0;
|
| }
|
| @@ -477,7 +631,7 @@ int test4_2357()
|
| two sink_4_2358(const A&); // { dg-message "candidates" }
|
| three sink_4_2358(volatile A&); // { dg-message "note" }
|
| five sink_4_2358( A&&); // { dg-message "note" }
|
| -eight sink_4_2358(const volatile A&&); // { dg-message "note" }
|
| +eight sink_4_2358(const volatile A&&); // { dg-message "" }
|
|
|
| int test4_2358()
|
| {
|
| @@ -486,6 +640,7 @@ int test4_2358()
|
| volatile A va;
|
| const volatile A cva = a;
|
| sink_4_2358(a); // { dg-error "ambiguous" }
|
| + sink_4_2358(cva); // { dg-error "lvalue" }
|
| return 0;
|
| }
|
|
|
| @@ -510,7 +665,7 @@ int test4_2367()
|
| two sink_4_2368(const A&); // { dg-message "candidates" }
|
| three sink_4_2368(volatile A&); // { dg-message "note" }
|
| six sink_4_2368(const A&&); // { dg-message "note" }
|
| -eight sink_4_2368(const volatile A&&); // { dg-message "note" }
|
| +eight sink_4_2368(const volatile A&&); // { dg-message "" }
|
|
|
| int test4_2368()
|
| {
|
| @@ -519,13 +674,14 @@ int test4_2368()
|
| volatile A va;
|
| const volatile A cva = a;
|
| sink_4_2368(a); // { dg-error "ambiguous" }
|
| + sink_4_2368(cva); // { dg-error "lvalue" }
|
| return 0;
|
| }
|
|
|
| two sink_4_2378(const A&); // { dg-message "candidates" }
|
| three sink_4_2378(volatile A&); // { dg-message "note" }
|
| seven sink_4_2378(volatile A&&); // { dg-message "note" }
|
| -eight sink_4_2378(const volatile A&&); // { dg-message "note" }
|
| +eight sink_4_2378(const volatile A&&); // { dg-message "" }
|
|
|
| int test4_2378()
|
| {
|
| @@ -534,6 +690,7 @@ int test4_2378()
|
| volatile A va;
|
| const volatile A cva = a;
|
| sink_4_2378(a); // { dg-error "ambiguous" }
|
| + sink_4_2378(cva); // { dg-error "lvalue" }
|
| return 0;
|
| }
|
|
|
| @@ -587,7 +744,7 @@ int test4_2467()
|
| two sink_4_2567(const A&); // { dg-message "candidates" }
|
| five sink_4_2567( A&&); // { dg-message "note" }
|
| six sink_4_2567(const A&&); // { dg-message "note" }
|
| -seven sink_4_2567(volatile A&&); // { dg-message "note" }
|
| +seven sink_4_2567(volatile A&&); // { dg-message "" }
|
|
|
| int test4_2567()
|
| {
|
| @@ -595,15 +752,48 @@ int test4_2567()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_2567(va); // { dg-error "lvalue" }
|
| sink_4_2567(cva); // { dg-error "no match" }
|
| sink_4_2567(cv_source()); // { dg-error "no match" }
|
| return 0;
|
| }
|
|
|
| +two sink_4_2568(const A&);
|
| +five sink_4_2568( A&&);
|
| +six sink_4_2568(const A&&);
|
| +eight sink_4_2568(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_2568()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_2568(va); // { dg-error "lvalue" }
|
| + sink_4_2568(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| +two sink_4_2578(const A&);
|
| +five sink_4_2578( A&&);
|
| +seven sink_4_2578(volatile A&&); // { dg-message "" }
|
| +eight sink_4_2578(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_2578()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_2578(va); // { dg-error "lvalue" }
|
| + sink_4_2578(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| two sink_4_2678(const A&); // { dg-message "candidates" }
|
| six sink_4_2678(const A&&); // { dg-message "note" }
|
| -seven sink_4_2678(volatile A&&); // { dg-message "note" }
|
| -eight sink_4_2678(const volatile A&&); // { dg-message "note" }
|
| +seven sink_4_2678(volatile A&&); // { dg-message "" }
|
| +eight sink_4_2678(const volatile A&&); // { dg-message "" }
|
|
|
| int test4_2678()
|
| {
|
| @@ -611,6 +801,8 @@ int test4_2678()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_2678(va); // { dg-error "lvalue" }
|
| + sink_4_2678(cva); // { dg-error "lvalue" }
|
| sink_4_2678(source()); // { dg-error "ambiguous" }
|
| return 0;
|
| }
|
| @@ -665,7 +857,7 @@ int test4_3467()
|
|
|
| three sink_4_3567(volatile A&); // { dg-message "candidates" }
|
| five sink_4_3567( A&&); // { dg-message "note" }
|
| -six sink_4_3567(const A&&); // { dg-message "note" }
|
| +six sink_4_3567(const A&&); // { dg-message "" }
|
| seven sink_4_3567(volatile A&&); // { dg-message "note" }
|
|
|
| int test4_3567()
|
| @@ -674,15 +866,48 @@ int test4_3567()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_3567(ca); // { dg-error "lvalue" }
|
| sink_4_3567(cva); // { dg-error "no match" }
|
| sink_4_3567(cv_source()); // { dg-error "no match" }
|
| return 0;
|
| }
|
|
|
| +three sink_4_3568(volatile A&);
|
| +five sink_4_3568( A&&);
|
| +six sink_4_3568(const A&&); // { dg-message "" }
|
| +eight sink_4_3568(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_3568()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_3568(ca); // { dg-error "lvalue" }
|
| + sink_4_3568(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| +three sink_4_3578(volatile A&);
|
| +five sink_4_3578( A&&);
|
| +seven sink_4_3578(volatile A&&);
|
| +eight sink_4_3578(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_3578()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_3578(ca); // { dg-error "lvalue" }
|
| + sink_4_3578(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| three sink_4_3678(volatile A&);
|
| -six sink_4_3678(const A&&); // { dg-message "candidates" }
|
| +six sink_4_3678(const A&&); // { dg-message "" }
|
| seven sink_4_3678(volatile A&&); // { dg-message "note" }
|
| -eight sink_4_3678(const volatile A&&); // { dg-message "note" }
|
| +eight sink_4_3678(const volatile A&&); // { dg-message "" }
|
|
|
| int test4_3678()
|
| {
|
| @@ -690,6 +915,8 @@ int test4_3678()
|
| const A ca = a;
|
| volatile A va;
|
| const volatile A cva = a;
|
| + sink_4_3678(ca); // { dg-error "lvalue" }
|
| + sink_4_3678(cva); // { dg-error "lvalue" }
|
| sink_4_3678(source()); // { dg-error "ambiguous" }
|
| return 0;
|
| }
|
| @@ -724,6 +951,24 @@ int test4_4678()
|
| return 0;
|
| }
|
|
|
| +five sink_4_5678( A&&); // { dg-message "" }
|
| +six sink_4_5678(const A&&); // { dg-message "" }
|
| +seven sink_4_5678(volatile A&&); // { dg-message "" }
|
| +eight sink_4_5678(const volatile A&&); // { dg-message "" }
|
| +
|
| +int test4_5678()
|
| +{
|
| + A a;
|
| + const A ca = a;
|
| + volatile A va;
|
| + const volatile A cva = a;
|
| + sink_4_5678(a); // { dg-error "lvalue" }
|
| + sink_4_5678(ca); // { dg-error "lvalue" }
|
| + sink_4_5678(va); // { dg-error "lvalue" }
|
| + sink_4_5678(cva); // { dg-error "lvalue" }
|
| + return 0;
|
| +}
|
| +
|
| int main()
|
| {
|
| return test4_1235() + test4_1236() + test4_1237() + test4_1256() + test4_1257() +
|
|
|