https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99869
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:260caabe10cde0158b87968a3bac85575301dafa commit r11-7963-g260caabe10cde0158b87968a3bac85575301dafa Author: Patrick Palka <ppa...@redhat.com> Date: Fri Apr 2 19:46:24 2021 -0400 c++: placeholder type constraint inside range-for [PR99869] In the testcase below, during ahead-of-time deduction of a constrained auto inside a range-based for loop, we trip over an assert within do_auto_deduction which expects the deduction context to be adc_return_type or adc_variable_type, but do_range_for_auto_deduction calls do_auto_deduction with the context defaulted to adc_unspecified. We could safely relax the assert to also accept adc_unspecified, but it seems the deduction context should really be adc_variable_type here. gcc/cp/ChangeLog: PR c++/99869 * parser.c (do_range_for_auto_deduction): Pass adc_variable_type to do_auto_deduction. gcc/testsuite/ChangeLog: PR c++/99869 * g++.dg/cpp2a/concepts-placeholder6.C: New test.