diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/rv4n.C')
| -rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/rv4n.C | 283 |
1 files changed, 264 insertions, 19 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv4n.C b/gcc/testsuite/g++.dg/cpp0x/rv4n.C index b88e3f77061..cf627aed3f0 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv4n.C +++ b/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() + |

