https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99886

            Bug ID: 99886
           Summary: Infinite loop in -fanalyzer seen on
                    gcc.dg/analyzer/malloc-1.c with -fanalyzer-verbosity=0
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: analyzer
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: dmalcolm at gcc dot gnu.org
  Target Milestone: ---

Reproducer:

#include <stdlib.h>

struct coord {
  float x;
  float y;
};

void test_34 (void)
{
  float *q;
  struct coord *p = malloc (sizeof (struct coord));
  if (!p)
    return;
  p->x = 0.0f;
  q = &p->x;
  free (p);
  *q = 1.0f; /* { dg-warning "use after 'free' of 'q'" } */
};

when compiled with:
  -fanalyzer -fanalyzer-verbosity=0

Doesn't happen at other verbosity levels.

Seems to be getting stuck here in diagnostic_manager::consolidate_conditions:

(gdb) bt
#0  0x00000000024a8777 in vec<ana::checker_event*, va_heap, vl_ptr>::length
(this=0x7fffffffca98) at ../../src/gcc/vec.h:1439
#1  0x00000000024c0d30 in ana::checker_path::num_events (this=0x7fffffffca90)
at ../../src/gcc/analyzer/checker-path.h:503
#2  0x00000000024c0138 in ana::diagnostic_manager::consolidate_conditions
(this=0x7fffffffcf00, path=0x7fffffffca90)
    at ../../src/gcc/analyzer/diagnostic-manager.cc:2203
#3  0x00000000024bf433 in ana::diagnostic_manager::prune_path
(this=0x7fffffffcf00, path=0x7fffffffca90, sm=0x0, sval=0x0, state=0x0)
    at ../../src/gcc/analyzer/diagnostic-manager.cc:1783
#4  0x00000000024be1b6 in ana::diagnostic_manager::emit_saved_diagnostic
(this=0x7fffffffcf00, eg=..., sd=...)
    at ../../src/gcc/analyzer/diagnostic-manager.cc:1131
#5  0x00000000024c1af1 in ana::dedupe_winners::emit_best (this=0x7fffffffcc20,
dm=0x7fffffffcf00, eg=...)
    at ../../src/gcc/analyzer/diagnostic-manager.cc:1051
#6  0x00000000024bdfa6 in ana::diagnostic_manager::emit_saved_diagnostics
(this=0x7fffffffcf00, eg=...)
    at ../../src/gcc/analyzer/diagnostic-manager.cc:1100
#7  0x0000000001830e13 in ana::impl_run_checkers (logger=0x35ccbf0) at
../../src/gcc/analyzer/engine.cc:4892

Reply via email to