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() + |