Index: gcc/gcc/testsuite/g++.dg/cpp0x/rv5n.C |
diff --git a/gcc/gcc/testsuite/g++.dg/cpp0x/rv5n.C b/gcc/gcc/testsuite/g++.dg/cpp0x/rv5n.C |
index 14128b2aa36ea03fbd70597cde40b13995f63c90..c31a30b2d6f07d96f03b03e66ab6b1b364a7a9de 100644 |
--- a/gcc/gcc/testsuite/g++.dg/cpp0x/rv5n.C |
+++ b/gcc/gcc/testsuite/g++.dg/cpp0x/rv5n.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" } |
@@ -115,6 +115,22 @@ int test5_12357() |
return 0; |
} |
+one sink_5_12358( A&); |
+two sink_5_12358(const A&); |
+three sink_5_12358(volatile A&); |
+five sink_5_12358( A&&); |
+eight sink_5_12358(const volatile A&&); // { dg-message "" } |
+ |
+int test5_12358() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_12358(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
one sink_5_12367( A&); // { dg-message "candidates" } |
two sink_5_12367(const A&); // { dg-message "note" } |
three sink_5_12367(volatile A&); // { dg-message "note" } |
@@ -133,6 +149,38 @@ int test5_12367() |
return 0; |
} |
+one sink_5_12368( A&); |
+two sink_5_12368(const A&); |
+three sink_5_12368(volatile A&); |
+six sink_5_12368(const A&&); |
+eight sink_5_12368(const volatile A&&); // { dg-message "" } |
+ |
+int test5_12368() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_12368(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
+one sink_5_12378( A&); |
+two sink_5_12378(const A&); |
+three sink_5_12378(volatile A&); |
+seven sink_5_12378(volatile A&&); |
+eight sink_5_12378(const volatile A&&); // { dg-message "" } |
+ |
+int test5_12378() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_12378(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
one sink_5_12456( A&); // { dg-message "candidates" } |
two sink_5_12456(const A&); // { dg-message "note" } |
four sink_5_12456(const volatile A&); // { dg-message "note" } |
@@ -187,7 +235,7 @@ one sink_5_12567( A&); // { dg-message "candidates" } |
two sink_5_12567(const A&); // { dg-message "note" } |
five sink_5_12567( A&&); // { dg-message "note" } |
six sink_5_12567(const A&&); // { dg-message "note" } |
-seven sink_5_12567(volatile A&&); // { dg-message "note" } |
+seven sink_5_12567(volatile A&&); // { dg-message "" } |
int test5_12567() |
{ |
@@ -195,16 +243,51 @@ int test5_12567() |
const A ca = a; |
volatile A va; |
const volatile A cva = a; |
+ sink_5_12567(va); // { dg-error "lvalue" } |
sink_5_12567(cva); // { dg-error "no match" } |
sink_5_12567(cv_source()); // { dg-error "no match" } |
return 0; |
} |
+one sink_5_12568( A&); |
+two sink_5_12568(const A&); |
+five sink_5_12568( A&&); |
+six sink_5_12568(const A&&); |
+eight sink_5_12568(const volatile A&&); // { dg-message "" } |
+ |
+int test5_12568() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_12568(va); // { dg-error "lvalue" } |
+ sink_5_12568(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
+one sink_5_12578( A&); |
+two sink_5_12578(const A&); |
+five sink_5_12578( A&&); |
+seven sink_5_12578(volatile A&&); // { dg-message "" } |
+eight sink_5_12578(const volatile A&&); // { dg-message "" } |
+ |
+int test5_12578() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_12578(va); // { dg-error "lvalue" } |
+ sink_5_12578(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
one sink_5_12678( A&); |
two sink_5_12678(const A&); // { dg-message "candidates" } |
six sink_5_12678(const A&&); // { dg-message "note" } |
-seven sink_5_12678(volatile A&&); // { dg-message "note" } |
-eight sink_5_12678(const volatile A&&); // { dg-message "note" } |
+seven sink_5_12678(volatile A&&); // { dg-message "" } |
+eight sink_5_12678(const volatile A&&); // { dg-message "" } |
int test5_12678() |
{ |
@@ -212,6 +295,8 @@ int test5_12678() |
const A ca = a; |
volatile A va; |
const volatile A cva = a; |
+ sink_5_12678(va); // { dg-error "lvalue" } |
+ sink_5_12678(cva); // { dg-error "lvalue" } |
sink_5_12678(source()); // { dg-error "ambiguous" } |
return 0; |
} |
@@ -270,7 +355,7 @@ int test5_13467() |
one sink_5_13567( A&); // { dg-message "candidates" } |
three sink_5_13567(volatile A&); // { dg-message "note" } |
five sink_5_13567( A&&); // { dg-message "note" } |
-six sink_5_13567(const A&&); // { dg-message "note" } |
+six sink_5_13567(const A&&); // { dg-message "" } |
seven sink_5_13567(volatile A&&); // { dg-message "note" } |
int test5_13567() |
@@ -279,16 +364,51 @@ int test5_13567() |
const A ca = a; |
volatile A va; |
const volatile A cva = a; |
+ sink_5_13567(ca); // { dg-error "lvalue" } |
sink_5_13567(cva); // { dg-error "no match" } |
sink_5_13567(cv_source()); // { dg-error "no match" } |
return 0; |
} |
+one sink_5_13568( A&); |
+three sink_5_13568(volatile A&); |
+five sink_5_13568( A&&); |
+six sink_5_13568(const A&&); // { dg-message "" } |
+eight sink_5_13568(const volatile A&&); // { dg-message "" } |
+ |
+int test5_13568() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_13568(ca); // { dg-error "lvalue" } |
+ sink_5_13568(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
+one sink_5_13578( A&); |
+three sink_5_13578(volatile A&); |
+five sink_5_13578( A&&); |
+seven sink_5_13578(volatile A&&); |
+eight sink_5_13578(const volatile A&&); // { dg-message "" } |
+ |
+int test5_13578() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_13578(ca); // { dg-error "lvalue" } |
+ sink_5_13578(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
one sink_5_13678( A&); |
three sink_5_13678(volatile A&); |
-six sink_5_13678(const A&&); // { dg-message "candidates" } |
+six sink_5_13678(const A&&); // { dg-message "" } |
seven sink_5_13678(volatile A&&); // { dg-message "note" } |
-eight sink_5_13678(const volatile A&&); // { dg-message "note" } |
+eight sink_5_13678(const volatile A&&); // { dg-message "" } |
int test5_13678() |
{ |
@@ -296,6 +416,8 @@ int test5_13678() |
const A ca = a; |
volatile A va; |
const volatile A cva = a; |
+ sink_5_13678(ca); // { dg-error "lvalue" } |
+ sink_5_13678(cva); // { dg-error "lvalue" } |
sink_5_13678(source()); // { dg-error "ambiguous" } |
return 0; |
} |
@@ -332,6 +454,24 @@ int test5_14678() |
return 0; |
} |
+one sink_5_15678( A&); |
+five sink_5_15678( A&&); |
+six sink_5_15678(const A&&); // { dg-message "" } |
+seven sink_5_15678(volatile A&&); // { dg-message "" } |
+eight sink_5_15678(const volatile A&&); // { dg-message "" } |
+ |
+int test5_15678() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_15678(ca); // { dg-error "lvalue" } |
+ sink_5_15678(va); // { dg-error "lvalue" } |
+ sink_5_15678(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
two sink_5_23456(const A&); // { dg-message "candidates" } |
three sink_5_23456(volatile A&); // { dg-message "note" } |
four sink_5_23456(const volatile A&); // { dg-message "note" } |
@@ -455,7 +595,7 @@ two sink_5_23568(const A&); // { dg-message "candidates" } |
three sink_5_23568(volatile A&); // { dg-message "note" } |
five sink_5_23568( A&&); // { dg-message "note" } |
six sink_5_23568(const A&&); // { dg-message "note" } |
-eight sink_5_23568(const volatile A&&); // { dg-message "note" } |
+eight sink_5_23568(const volatile A&&); // { dg-message "" } |
int test5_23568() |
{ |
@@ -463,6 +603,7 @@ int test5_23568() |
const A ca = a; |
volatile A va; |
const volatile A cva = a; |
+ sink_5_23568(cva); // { dg-error "lvalue" } |
sink_5_23568(a); // { dg-error "ambiguous" } |
return 0; |
} |
@@ -471,7 +612,7 @@ two sink_5_23578(const A&); // { dg-message "candidates" } |
three sink_5_23578(volatile A&); // { dg-message "note" } |
five sink_5_23578( A&&); // { dg-message "note" } |
seven sink_5_23578(volatile A&&); // { dg-message "note" } |
-eight sink_5_23578(const volatile A&&); // { dg-message "note" } |
+eight sink_5_23578(const volatile A&&); // { dg-message "" } |
int test5_23578() |
{ |
@@ -479,6 +620,7 @@ int test5_23578() |
const A ca = a; |
volatile A va; |
const volatile A cva = a; |
+ sink_5_23578(cva); // { dg-error "lvalue" } |
sink_5_23578(a); // { dg-error "ambiguous" } |
return 0; |
} |
@@ -487,7 +629,7 @@ two sink_5_23678(const A&); // { dg-message "candidates" } |
three sink_5_23678(volatile A&); // { dg-message "note" } |
six sink_5_23678(const A&&); // { dg-message "note" } |
seven sink_5_23678(volatile A&&); // { dg-message "note" } |
-eight sink_5_23678(const volatile A&&); // { dg-message "note" } |
+eight sink_5_23678(const volatile A&&); // { dg-message "" } |
int test5_23678() |
{ |
@@ -496,6 +638,7 @@ int test5_23678() |
volatile A va; |
const volatile A cva = a; |
sink_5_23678(a); // { dg-error "ambiguous" } |
+ sink_5_23678(cva); // { dg-error "lvalue" } |
sink_5_23678(source()); // { dg-error "ambiguous" } |
return 0; |
} |
@@ -532,6 +675,23 @@ int test5_24678() |
return 0; |
} |
+two sink_5_25678(const A&); |
+five sink_5_25678( A&&); |
+six sink_5_25678(const A&&); |
+seven sink_5_25678(volatile A&&); // { dg-message "" } |
+eight sink_5_25678(const volatile A&&); // { dg-message "" } |
+ |
+int test5_25678() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_25678(va); // { dg-error "lvalue" } |
+ sink_5_25678(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
three sink_5_34567(volatile A&); // { dg-message "candidates" } |
four sink_5_34567(const volatile A&); // { dg-message "note" } |
five sink_5_34567( A&&); // { dg-message "note" } |
@@ -564,6 +724,23 @@ int test5_34678() |
return 0; |
} |
+three sink_5_35678(volatile A&); |
+five sink_5_35678( A&&); |
+six sink_5_35678(const A&&); // { dg-message "" } |
+seven sink_5_35678(volatile A&&); |
+eight sink_5_35678(const volatile A&&); // { dg-message "" } |
+ |
+int test5_35678() |
+{ |
+ A a; |
+ const A ca = a; |
+ volatile A va; |
+ const volatile A cva = a; |
+ sink_5_35678(ca); // { dg-error "lvalue" } |
+ sink_5_35678(cva); // { dg-error "lvalue" } |
+ return 0; |
+} |
+ |
int main() |
{ |
return test5_12356() + test5_12357() + test5_12367() + test5_12467() + |