aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2020-04-21 22:18:51 +0100
committerJonathan Wakely <jwakely@redhat.com>2020-04-21 22:18:51 +0100
commitd76925e46fad09fc9be6759cbf1f23c9a8344dbf (patch)
tree1b7ff4a666d5b11aef097be62965d78e56f52a7a /gcc
parent81e07d422c5026ed66e3ad72a75d0d2385be1c0a (diff)
downloadgcc-d76925e46fad09fc9be6759cbf1f23c9a8344dbf.zip
gcc-d76925e46fad09fc9be6759cbf1f23c9a8344dbf.tar.gz
gcc-d76925e46fad09fc9be6759cbf1f23c9a8344dbf.tar.bz2
libstdc++: Support arrays in std::is_nothrow_constructible (PR 94149)
The front end now supports parenthesized initialization for arrays in C++20, so extend std::is_nothrow_constructible to support them too. gcc/testsuite: PR c++/94149 * g++.dg/cpp2a/paren-init24.C: Fix FIXMEs. libstdc++-v3: PR c++/94149 * include/std/type_traits (__is_nt_constructible_impl): Add partial specializations for bounded arrays with non-empty initializers. * testsuite/20_util/is_nothrow_constructible/value_c++20.cc: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp2a/paren-init24.C6
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bd19696..91fe058 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -67,6 +67,11 @@
* g++.dg/coroutines/ramp-return-b.C: New test.
* g++.dg/coroutines/ramp-return-c.C: New test.
+2020-04-21 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/94149
+ * g++.dg/cpp2a/paren-init24.C: Fix FIXMEs.
+
2020-04-17 Marek Polacek <polacek@redhat.com>
PR c++/94592
diff --git a/gcc/testsuite/g++.dg/cpp2a/paren-init24.C b/gcc/testsuite/g++.dg/cpp2a/paren-init24.C
index a636a28..4e97bbc 100644
--- a/gcc/testsuite/g++.dg/cpp2a/paren-init24.C
+++ b/gcc/testsuite/g++.dg/cpp2a/paren-init24.C
@@ -11,8 +11,7 @@ int main()
static_assert(__is_constructible(T, int));
static_assert(!__is_constructible(T, int, int));
static_assert(std::is_constructible_v<T, int>);
- //FIXME: libstdc++ problem?
- //static_assert(std::is_nothrow_constructible_v<T, int>);
+ static_assert(std::is_nothrow_constructible_v<T, int>);
using T2 = int[2];
T2 t2(1);
@@ -21,6 +20,5 @@ int main()
static_assert(__is_constructible(T2, int));
static_assert(__is_constructible(T2, int, int));
static_assert(std::is_constructible_v<T2, int, int>);
- // FIXME libstdc++ problem?
- //static_assert(std::is_nothrow_constructible_v<T2, int, int>);
+ static_assert(std::is_nothrow_constructible_v<T2, int, int>);
}