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

            Bug ID: 110285
           Summary: -Wanalyzer-infinite-loop false positive.
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: analyzer
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: 080ariel at gmail dot com
  Target Milestone: ---

Created attachment 55346
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55346&action=edit
Preprocessed file of a-test1.i

-Wanalyzer-infinite-loop reports a false positive in test1.c with -O0 -O1 -O2
but not with -O3.
-Wanalyzer-infinite-loop reports a false positive in test2.c only with -O3.

Small changes fix the bug or change it from happening only 
in -O3 to happening only in the others levels and vice-versa.
It is why I have not been able to make test2.c minimal while
keeping the bug in -O3(it is attached just to show it can 
also happen in -O3).

It does not realize it cannot recurse because the condition 
to recurse is both condition_to_recurse and !condition_to_recurse. 

The analyzer report exactly the same thing in 14.0.0 and in 13.1.1.

----------------------------------------------------------------------

Tested both in 13.1.1 and in 14.0.0(commit:
b6cb10af12cf869c1ae348c0e5cb2d364ef0abce) in Linux.
Options given when GCC was configured/built: ../configure --enable-languages=c
Complete command line that triggers the bug: gcc -fanalyzer minimalcase.c

Reply via email to