This was effectively checking for one beyond the limit, rather than the limit itself.
Seen when fixing PR analyzer/97514. Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu. Pushed to master as ea0ae4e77a89d4a0492dcbbc13e9cbc19bcc2361. gcc/analyzer/ChangeLog: * engine.cc (exploded_graph::get_or_create_node): Fix off-by-one when imposing param_analyzer_max_enodes_per_program_point limit. --- gcc/analyzer/engine.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc index d4c654a3497..be54f0256b7 100644 --- a/gcc/analyzer/engine.cc +++ b/gcc/analyzer/engine.cc @@ -2100,7 +2100,7 @@ exploded_graph::get_or_create_node (const program_point &point, /* Impose a limit on the number of enodes per program point, and simply stop if we exceed it. */ if ((int)per_point_data->m_enodes.length () - > param_analyzer_max_enodes_per_program_point) + >= param_analyzer_max_enodes_per_program_point) { pretty_printer pp; point.print (&pp, format (false)); -- 2.26.2