1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-22 23:02:54 +03:00

Suppress compiler warning in new regex match-all detection code.

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
This commit is contained in:
Tom Lane 2021-02-23 13:55:11 -05:00
parent d9d076222f
commit 3db05e76f9

View File

@ -3082,8 +3082,13 @@ checkmatchall_recurse(struct nfa *nfa, struct state *s,
{
/* 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)
{