c++: Add testcase for PR98019
authorJason Merrill <jason@redhat.com>
Thu, 3 Dec 2020 18:55:51 +0000 (13:55 -0500)
committerJason Merrill <jason@redhat.com>
Thu, 3 Dec 2020 18:56:56 +0000 (13:56 -0500)
This has already been fixed on trunk, but I don't see a testcase for it.

gcc/testsuite/ChangeLog:

PR c++/98019
* g++.dg/cpp2a/concepts-nodiscard1.C: New test.

gcc/testsuite/g++.dg/cpp2a/concepts-nodiscard1.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-nodiscard1.C b/gcc/testsuite/g++.dg/cpp2a/concepts-nodiscard1.C
new file mode 100644 (file)
index 0000000..28ce29b
--- /dev/null
@@ -0,0 +1,10 @@
+// PR c++/98019
+// { dg-do compile { target c++20 } }
+
+template <class T, class U> concept same_as = __is_same_as (T, U);
+
+[[nodiscard]] int foo() { return 0; }
+[[maybe_unused]] constexpr bool b = requires {
+    { foo() } -> same_as<int>;
+};
+[[maybe_unused]] constexpr auto x = sizeof(foo());