gcc 10 is smart enough to notice that control could reach this
"hasmatch[depth]" assignment with depth < 0, but not smart enough
to know that that would require a badly broken NFA graph. Change
the assert() to a plain runtime test to shut it up.
Per report from Andres Freund.
Discussion: https://postgr.es/m/
20210223173437.b3ywijygsy6q42gq@alap3.anarazel.de
{
/* We found an all-RAINBOW path to the post state */
result = true;
+ /* ... which should not be adjacent to the pre state */
+ if (depth < 0)
+ {
+ NERR(REG_ASSERT);
+ return false;
+ }
/* Record potential match lengths */
- assert(depth >= 0);
hasmatch[depth] = true;
if (foundloop)
{