From: Taylor Blau Date: Fri, 24 Jul 2026 21:20:41 GMT Subject: Re: [PATCH] branch: avoid slow strvec Coccinelle matching Message-ID: In-Reply-To: On Fri, Jul 24, 2026 at 08:27:06AM -0700, Junio C Hamano wrote: > tnyman@openai.com writes: > > > From: Ted Nyman > > > > The --delete-merged implementation declares a loop index at function > > scope and reuses it to walk its strvec of upstreams and its list of > > candidate branches. Coccinelle 1.1.1 spends hours matching this against > > the separate_loop_index rule in tools/coccinelle/strvec.cocci, causing > > the static-analysis job on 'seen' to reach its six-hour timeout. > > ... > > The CI failure reproduces locally with Coccinelle 1.1.1: applying > > strvec.cocci to the original builtin/branch.c still times out with > > "spatch --timeout 120". With this change, the same check completes in > > 0.06 seconds. > > Impressive. Nicely analyzed. > > Even though this is very much like bending the code only to appease > the checker, the resulting code is arguably better in this > particular case, so I do not feel as bad as I have on other > occasions when we had to work around deficiencies in our tools [*]. Agreed. I don't think we should ever bend over backwards to appease a static analysis tool, *especially* when it results in worse looking code. But this case is a strict improvement, and just so happens to address the Coccinelle issue. ;-) > I see Harald already took this in the latest update. Thanks for > working well together. Yup. Thanks, both. Thanks, Taylor