aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/pr92536.C23
2 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cae0c16..888f2cd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2020-01-20 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/92536
+ * g++.dg/cpp1z/pr92536.C: New.
+
2020-01-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/93094
diff --git a/gcc/testsuite/g++.dg/cpp1z/pr92536.C b/gcc/testsuite/g++.dg/cpp1z/pr92536.C
new file mode 100644
index 0000000..035c769
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/pr92536.C
@@ -0,0 +1,23 @@
+// { dg-do compile { target c++17 } }
+
+namespace std
+{
+ struct stop_token { };
+
+ template<typename Callback>
+ struct stop_callback
+ {
+ template<typename C>
+ stop_callback(stop_token, C&&) { }
+ };
+
+template<typename _Callback>
+ stop_callback(stop_token, _Callback) -> stop_callback<_Callback>;
+}
+
+int main()
+{
+ std::stop_token tok;
+ std::function<void()> f([](){}); // { dg-error "not a member|not declared" }
+ std::stop_callback cb(tok, f);
+}