gcc/libstdc++-v3/include
Jonathan Wakely 58487c21b6 PR c++/90532 Ensure __is_constructible(T[]) is false
An array of an unknown bound is an incomplete type, so no object of such
a type can be constructed. This means __is_constructible should always
be false for an array of unknown bound.

This patch also changes the std::is_default_constructible trait to use
std::is_constructible, which now gives the right answer for arrays of
unknown bound.

gcc/cp:

	PR c++/90532 Ensure __is_constructible(T[]) is false
	* method.c (is_xible_helper): Return error_mark_node for construction
	of an array of unknown bound.

gcc/testsuite:

	PR c++/90532 Ensure __is_constructible(T[]) is false
	* g++.dg/ext/90532.C: New test.

libstdc++-v3:

	PR c++/90532 Ensure __is_constructible(T[]) is false
	* include/std/type_traits (__do_is_default_constructible_impl)
	(__is_default_constructible_atom, __is_default_constructible_safe):
	Remove.
	(is_default_constructible): Use is_constructible.
	* testsuite/20_util/is_constructible/value.cc: Check int[] case.
	* testsuite/20_util/is_default_constructible/value.cc: Likewise.
	* testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
	* testsuite/20_util/is_trivially_default_constructible/value.cc:
	Likewise.

From-SVN: r271412
2019-05-20 12:32:51 +01:00
..
backward PR libstdc++/88066 Use <> for includes not "" 2019-03-21 12:07:10 +00:00
bits 2019-05-17 François Dumont <fdumont@gcc.gnu.org> 2019-05-17 16:27:54 +00:00
c Update copyright years. 2019-01-01 13:31:55 +01:00
c_compatibility In C++17 <math.h> should not put special functions in global namespace 2019-03-21 14:03:56 +00:00
c_global Define midpoint and lerp functions for C++20 (P0811R3) 2019-03-05 18:37:24 +00:00
c_std Update copyright years. 2019-01-01 13:31:55 +01:00
debug PR libstdc++/87431 re-adjust never-valueless optimizations 2019-04-05 17:56:09 +01:00
decimal Update copyright years. 2019-01-01 13:31:55 +01:00
experimental Fix uses of non-reserved names for template parameters 2019-05-17 15:13:40 +01:00
ext std::allocator::deallocate support sized-deallocation 2019-05-20 12:15:03 +01:00
parallel Fix markup for Parallel Mode docs 2019-05-02 16:44:51 +01:00
precompiled Remove array_allocator extension, deprecated since 4.9.0 2019-05-13 11:49:58 +01:00
pstl Fix uses of non-reserved names for template parameters 2019-05-17 15:13:40 +01:00
std PR c++/90532 Ensure __is_constructible(T[]) is false 2019-05-20 12:32:51 +01:00
tr1 Improve API docs for mathematical special functions 2019-05-02 16:44:59 +01:00
tr2 Fix after P0600. 2019-01-21 11:47:30 +00:00
Makefile.am Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00
Makefile.in Remove Profile Mode, deprecated since GCC 7.1 2019-05-13 11:50:21 +01:00