gcc/libstdc++-v3
Jason Merrill 8960a29b18 c++: limit instantiation with ill-formed class [PR96286]
I noticed that after the static_assert failures in lwg3466.cc, we got
various follow-on errors because we went ahead and tried to instantiate the
promise<T> member functions even after instantiating the class itself ran
into problems.  Interrupting instantiation of the class itself seems likely
to cause error-recovery problems, but preventing instantiation of member
functions seems strictly better for error-recovery.

This doesn't fix any of the specific testcases in PR96286, but addresses
part of that problem space.

	PR c++/96286

gcc/cp/ChangeLog:

	* cp-tree.h (struct lang_type): Add erroneous bit-field.
	(CLASSTYPE_ERRONEOUS): New.
	* pt.c (limit_bad_template_recursion): Check it.
	(instantiate_class_template_1): Set it.

libstdc++-v3/ChangeLog:

	* testsuite/30_threads/promise/requirements/lwg3466.cc:
	Remove dg-prune-outputs.

gcc/testsuite/ChangeLog:

	* g++.dg/template/access2.C: Split struct A.
2021-08-30 17:25:21 -04:00
..
config aix: Protect AIX math.h overloads with new macro. 2021-07-22 11:30:34 -04:00
doc libstdc++: Update C++20 status table for layout-compatibility traits 2021-08-24 16:15:48 +01:00
include libstdc++: Fix std::allocator<void> for versioned namespace 2021-08-28 14:37:19 +01:00
libsupc++ libstdc++: Use __builtin_expect in __dynamic_cast 2021-08-23 14:45:00 +01:00
po
python libstdc++: Fix vector<bool> printer tests to work in debug mode 2021-08-18 14:26:38 +01:00
scripts
src libstdc++: Fix inefficiency in filesystem::absolute [PR99876] 2021-08-28 11:52:22 +01:00
testsuite c++: limit instantiation with ill-formed class [PR96286] 2021-08-30 17:25:21 -04:00
acinclude.m4
aclocal.m4
ChangeLog Daily bump. 2021-08-29 00:16:41 +00:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019
ChangeLog-2020
config.h.in libstdc++: Use secure_getenv for filesystem::temp_directory_path() [PR65018] 2021-07-30 18:12:39 +01:00
configure libstdc++: Make Networking TS headers more portable [PR100285] 2021-08-26 12:41:28 +01:00
configure.ac libstdc++: Make Networking TS headers more portable [PR100285] 2021-08-26 12:41:28 +01:00
configure.host
crossconfig.m4
fragment.am
linkage.m4
Makefile.am
Makefile.in
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.