[gcc r11-4433] analyzer: fix param "analyzer-max-enodes-per-program-point"

David Malcolm dmalcolm@gcc.gnu.org
Tue Oct 27 13:50:53 GMT 2020


https://gcc.gnu.org/g:ea0ae4e77a89d4a0492dcbbc13e9cbc19bcc2361

commit r11-4433-gea0ae4e77a89d4a0492dcbbc13e9cbc19bcc2361
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Tue Oct 27 09:50:24 2020 -0400

    analyzer: fix param "analyzer-max-enodes-per-program-point"
    
    This was effectively checking for one beyond the limit, rather than
    the limit itself.
    
    Seen when fixing PR analyzer/97514.
    
    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.

Diff:
---
 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));


More information about the Gcc-cvs mailing list