summaryrefslogtreecommitdiff
path: root/test/CXX/drs/dr16xx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/CXX/drs/dr16xx.cpp')
-rw-r--r--test/CXX/drs/dr16xx.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/test/CXX/drs/dr16xx.cpp b/test/CXX/drs/dr16xx.cpp
index ddb7d16869ba8..65467e35e4d68 100644
--- a/test/CXX/drs/dr16xx.cpp
+++ b/test/CXX/drs/dr16xx.cpp
@@ -18,8 +18,8 @@ namespace dr1684 { // dr1684: 3.6
#endif
}
+namespace dr1631 { // dr1631: 3.7
#if __cplusplus >= 201103L
-namespace dr1631 { // dr1631: 3.7 c++11
// Incorrect overload resolution for single-element initializer-list
struct A { int a[1]; };
@@ -41,5 +41,22 @@ namespace dr1631 { // dr1631: 3.7 c++11
f({0}, {{1}}); // expected-error{{call to 'f' is ambiguous}}
}
}
-} // dr1631
#endif
+}
+
+namespace dr1645 { // dr1645: 3.9
+#if __cplusplus >= 201103L
+ struct A { // expected-note 2{{candidate}}
+ constexpr A(int, float = 0); // expected-note 2{{candidate}}
+ explicit A(int, int = 0); // expected-note 2{{candidate}}
+ A(int, int, int = 0) = delete; // expected-note {{candidate}}
+ };
+
+ struct B : A { // expected-note 2{{candidate}}
+ using A::A; // expected-note 7{{inherited here}}
+ };
+
+ constexpr B a(0); // expected-error {{ambiguous}}
+ constexpr B b(0, 0); // expected-error {{ambiguous}}
+#endif
+}