diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-04-21 22:18:51 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-04-21 22:18:51 +0100 |
commit | d76925e46fad09fc9be6759cbf1f23c9a8344dbf (patch) | |
tree | 1b7ff4a666d5b11aef097be62965d78e56f52a7a /gcc | |
parent | 81e07d422c5026ed66e3ad72a75d0d2385be1c0a (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp2a/paren-init24.C | 6 |
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>); } |