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