Hi, On Sun Mar 23, 2025 at 8:30 PM CET, Jason Merrill wrote: > On 3/23/25 1:55 AM, Simon Martin wrote: >> Hi, >> >> On Sat Sep 14, 2024 at 10:00 AM CEST, Jason Merrill wrote: >>> On 9/13/24 1:31 PM, Simon Martin wrote: >>>> We currently ICE upon the following testcase when using -ftime-report >>>> >>>> === cut here === >>>> template < int> using __conditional_t = int; >>>> template < typename _Iter > >>>> concept random_access_iterator = requires { new _Iter; }; >>>> template < typename _Iterator > >>>> struct reverse_iterator { >>>> using iterator_concept = >>>> __conditional_t< random_access_iterator< _Iterator>>; >>>> }; >>>> void RemoveBottom() { >>>> int iter; >>>> for (reverse_iterator< int > iter;;) >>>> ; >>>> } >>>> === cut here === >>>> >>>> The problem is that qualified_namespace_lookup does a plain start() of >>>> the TV_NAME_LOOKUP timer (that asserts that the timer is not already >>>> started). However this timer has already been cond_start()'d in the call >>>> stack - by pushdecl - so the assert fails. >>>> >>>> This patch simply ensures that we always conditionally start this timer >>>> (which is done in all other places that use it). >>> >>> OK, thanks. >> Richard B suggested in the ticket to try to backport since that bug can >> get in the way of some investigations. >> >> I have checked and the patch applies cleanly on GCC 13 and 14, and tests >> are successful for both on x86_64-pc-linux-gnu. >> >> OK for backporting there? > > OK. Thanks. Merged as r13-9448-g73db20707fd60f303313fda3c9245a06037f312a and r14-11442-g8bac22817192349cad15c88e01a73798e2a783ad.
Simon