gcc/gcc/cp
Iain Sandoe 7b96274a34 c++, coroutines: Improve check for throwing final await [PR104051].
We check that the final_suspend () method returns a sane type (i.e. a class
or structure) but, unfortunately, that check has to be later than the one
for a throwing case.  If the use returns some nonsensical type from the
method, we need to handle that in the checking for noexcept.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

	PR c++/104051

gcc/cp/ChangeLog:

	* coroutines.cc (coro_diagnose_throwing_final_aw_expr): Handle
	non-target expression inputs.

gcc/testsuite/ChangeLog:

	* g++.dg/coroutines/pr104051.C: New test.
2022-04-28 13:55:09 +01:00
..
ChangeLog Daily bump. 2022-04-28 00:16:52 +00:00
ChangeLog-1993
ChangeLog-1994
ChangeLog-1995
ChangeLog-1996
ChangeLog-1997
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
ChangeLog-2021 Rotate ChangeLog files - part 1 - add ChangeLog-2021. 2022-01-03 10:18:16 +01:00
ChangeLog.ptr
ChangeLog.tree-ssa
Make-lang.in Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
call.cc c++: Fall through for arrays of T vs T cv [PR104996] 2022-04-20 10:15:21 -04:00
cfns.gperf Update copyright years. 2022-01-03 10:42:10 +01:00
cfns.h Update copyright years. 2022-01-03 10:42:10 +01:00
class.cc c++: using operator= [PR105223] 2022-04-11 23:57:08 -04:00
config-lang.in Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
constexpr.cc c++: Remove unused parameter 2022-04-21 10:29:04 -04:00
constraint.cc c++: ICE with failed __is_constructible constraint [PR100474] 2022-03-30 10:13:11 -04:00
coroutines.cc c++, coroutines: Improve check for throwing final await [PR104051]. 2022-04-28 13:55:09 +01:00
cp-gimplify.cc c++: fold calls to std::move/forward [PR96780] 2022-03-16 08:25:54 -04:00
cp-lang.cc Update per-file selftest and finalization hooks for .c to .cc renaming 2022-01-19 11:33:53 -05:00
cp-name-hint.h Update copyright years. 2022-01-03 10:42:10 +01:00
cp-objcp-common.cc c++: Handle __builtin_clear_padding on non-trivially-copyable types [PR102586] 2022-04-07 09:14:07 +02:00
cp-objcp-common.h c++: Handle __builtin_clear_padding on non-trivially-copyable types [PR102586] 2022-04-07 09:14:07 +02:00
cp-tree.def Update copyright years. 2022-01-03 10:42:10 +01:00
cp-tree.h c++: local fn and generic lambda [PR97219] 2022-04-13 20:24:36 -04:00
cp-ubsan.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
cvt.cc Fix up duplicated duplicated words in comments 2022-03-07 15:00:20 +01:00
cxx-pretty-print.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
cxx-pretty-print.h Update copyright years. 2022-01-03 10:42:10 +01:00
decl.cc c++: unsigned int32_t enum promotion [PR102804] 2022-04-14 21:55:08 -04:00
decl.h Update copyright years. 2022-01-03 10:42:10 +01:00
decl2.cc c++: Treat alignas align_expr and aligned attribute's operand as manifestly constant evaluation [PR105233] 2022-04-13 15:43:34 +02:00
dump.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
error.cc c++: using in diagnostics [PR102987] 2022-04-14 21:00:14 -04:00
except.cc c++: non-constant non-dependent decltype folding [PR104823] 2022-03-09 08:42:37 -05:00
expr.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
friend.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
g++spec.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
init.cc c++: NRV and ref-extended temps [PR101442] 2022-04-13 20:22:57 -04:00
lambda.cc c++: lambda and the current instantiation [PR82980] 2022-04-14 14:51:49 -04:00
lang-specs.h Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
lex.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
logic.cc Update copyright years. 2022-01-03 10:42:10 +01:00
mangle.cc c++: mangling union{1} in template [PR104847] 2022-03-28 09:35:58 -04:00
mapper-client.cc Update copyright years. 2022-01-03 10:42:10 +01:00
mapper-client.h Update copyright years. 2022-01-03 10:42:10 +01:00
mapper-resolver.cc Update copyright years. 2022-01-03 10:42:10 +01:00
method.cc Revert "c++: delayed parse DMI [PR96645]" 2022-04-01 10:00:26 -04:00
module.cc Fix up duplicated duplicated words in comments 2022-03-07 15:00:20 +01:00
name-lookup.cc c++: local fn and generic lambda [PR97219] 2022-04-13 20:24:36 -04:00
name-lookup.h c++: elaborated-type-spec in requires-expr [PR101677] 2022-04-05 12:28:59 -04:00
operators.def Update copyright years. 2022-01-03 10:42:10 +01:00
optimize.cc warn-access: Prevent -Wuse-after-free on ARM [PR104213] 2022-01-26 12:18:32 -05:00
parser.cc c++: global-namespace-qualified var after class def [PR90107] 2022-04-28 08:37:45 -04:00
parser.h Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00
pt.cc c++: enum in generic lambda at global scope [PR105398] 2022-04-27 13:09:05 -04:00
ptree.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
rtti.cc Rename .c files to .cc files. 2022-01-17 22:12:04 +01:00
search.cc c++: further lookup_member simplification 2022-03-16 08:26:11 -04:00
semantics.cc c++: decltype of non-dependent call of class type [PR105386] 2022-04-26 10:53:38 -04:00
tree.cc c++: add comments 2022-04-27 19:49:37 -04:00
type-utils.h Update copyright years. 2022-01-03 10:42:10 +01:00
typeck.cc c++: __builtin_shufflevector with value-dep expr [PR105353] 2022-04-25 11:15:51 -04:00
typeck2.cc c++: Fix up CONSTRUCTOR_PLACEHOLDER_BOUNDARY handling [PR105256] 2022-04-19 18:27:41 +02:00
vtable-class-hierarchy.cc Change references of .c files to .cc files 2022-01-17 22:12:07 +01:00