[Bug c++/90548] [9/10 Regression] ICE in tsubst_copy_and_build, at cp/pt.c:18877
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90548 Marek Polacek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #7 from Marek Polacek --- Fixed.
[Bug c++/90548] [9/10 Regression] ICE in tsubst_copy_and_build, at cp/pt.c:18877
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90548 --- Comment #6 from Marek Polacek --- Author: mpolacek Date: Tue May 28 14:16:38 2019 New Revision: 271708 URL: https://gcc.gnu.org/viewcvs?rev=271708=gcc=rev Log: PR c++/90548 - ICE with generic lambda and empty pack. * pt.c (tsubst_copy_and_build): Handle pack expansion properly. * g++.dg/cpp1y/lambda-generic-90548.C: New test. Added: branches/gcc-9-branch/gcc/testsuite/g++.dg/cpp1y/lambda-generic-90548.C Modified: branches/gcc-9-branch/gcc/cp/ChangeLog branches/gcc-9-branch/gcc/cp/pt.c
[Bug c++/90548] [9/10 Regression] ICE in tsubst_copy_and_build, at cp/pt.c:18877
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90548 --- Comment #5 from Marek Polacek --- Author: mpolacek Date: Tue May 28 14:00:29 2019 New Revision: 271705 URL: https://gcc.gnu.org/viewcvs?rev=271705=gcc=rev Log: PR c++/90548 - ICE with generic lambda and empty pack. * pt.c (tsubst_copy_and_build): Handle pack expansion properly. * g++.dg/cpp1y/lambda-generic-90548.C: New test. Added: trunk/gcc/testsuite/g++.dg/cpp1y/lambda-generic-90548.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog
[Bug c++/90548] [9/10 Regression] ICE in tsubst_copy_and_build, at cp/pt.c:18877
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90548 Marek Polacek changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |mpolacek at gcc dot gnu.org --- Comment #4 from Marek Polacek --- I may have a fix.
[Bug c++/90548] [9/10 Regression] ICE in tsubst_copy_and_build, at cp/pt.c:18877
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90548 --- Comment #3 from Marek Polacek --- We ended up with an empty call_args vec because the pack expanded here: 18842 /* Expand the pack expansion and push each entry onto 18843CALL_ARGS. */ 18844 arg = tsubst_pack_expansion (arg, args, complain, in_decl); expanded to an empty vector. So nothing got pushed onto call_args.
[Bug c++/90548] [9/10 Regression] ICE in tsubst_copy_and_build, at cp/pt.c:18877
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90548 --- Comment #2 from Marek Polacek --- (gdb) p (*call_args).is_empty() $5 = true so tree arg = (*call_args)[i]; where i == 0 won't work.
[Bug c++/90548] [9/10 Regression] ICE in tsubst_copy_and_build, at cp/pt.c:18877
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90548 Marek Polacek changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2019-05-20 CC||mpolacek at gcc dot gnu.org Target Milestone|--- |9.2 Ever confirmed|0 |1 --- Comment #1 from Marek Polacek --- commit 64e3499e2386103c6842ffdf0b8eeae1d3798d29 Author: jason Date: Wed Jan 30 02:43:04 2019 + PR c++/86943 - wrong code converting lambda to function pointer. In this PR, instantiating the static thunk returned from the generic lambda conversion function template was using normal overload resolution, which meant calling an extra constructor when forwarding its argument. Fixed by special-casing thunk calls significantly more. * lambda.c (maybe_add_lambda_conv_op): Use a template-id in the call. Only forward parms for decltype. * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Handle CALL_FROM_THUNK_P specially. * typeck.c (check_return_expr): Don't mess with a thunk call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268377 138bc75d-0d04-0410-961f-82ee72b054a4