From dd2ce397d384339105cfc8f122e52b3c89778d05 Mon Sep 17 00:00:00 2001
From: Marek Polacek <polacek@redhat.com>
Date: Tue, 2 Jan 2018 17:02:14 +0000
Subject: [PATCH] re PR c++/83644 (ICE using type alias from recursive decltype
 in noexcept or return type)

	PR c++/83644
	* g++.dg/cpp1z/pr83644.C: New test.

From-SVN: r256082
---
 gcc/testsuite/ChangeLog              |  3 +++
 gcc/testsuite/g++.dg/cpp1z/pr83644.C | 12 ++++++++++++
 2 files changed, 15 insertions(+)
 create mode 100644 gcc/testsuite/g++.dg/cpp1z/pr83644.C

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9b88e6c05e38..b8dbee01f928 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -3,6 +3,9 @@
 	PR c++/81860
 	* g++.dg/cpp0x/inh-ctor30.C: New test.
 
+	PR c++/83644
+	* g++.dg/cpp1z/pr83644.C: New test.
+
 2018-01-01  Paul Thomas  <pault@gcc.gnu.org>
 
 	PR fortran/83076
diff --git a/gcc/testsuite/g++.dg/cpp1z/pr83644.C b/gcc/testsuite/g++.dg/cpp1z/pr83644.C
new file mode 100644
index 000000000000..493d8c7cbe46
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1z/pr83644.C
@@ -0,0 +1,12 @@
+// PR c++/83644
+// { dg-do compile }
+// { dg-options -std=c++17 }
+
+namespace std {
+template <typename> bool is_invocable_v;
+}
+template <typename F> auto compose(F) {
+  [](auto... objs) noexcept(std::is_invocable_v<decltype(objs)...>){};
+}
+
+auto f() { compose(3); }
-- 
GitLab