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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
   Target Milestone|---                         |9.5
   Last reconfirmed|                            |2021-10-22
            Summary|[8/9/10/11/12 Regression]   |[9/10/11/12 Regression]
                   |CDDCE does not detect empty |CDDCE does not detect empty
                   |infinite nested loops       |infinite nested loops

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hm, there's

        /* For loops without an exit do not mark any condition.  */
        if (loop->exits->next && !finite_loop_p (loop))

but here

(gdb) p loop->exits
$2 = (loop_exit *) 0x7ffff6690440
(gdb) p loop->exits->next
$3 = (loop_exit *) 0x7ffff6690440
(gdb) p *loop->exits
$5 = {e = <edge 0x0>, prev = 0x7ffff6690440, next = 0x7ffff6690440, 
  next_e = 0x0}

so I suppose I misunderstood how loop->exits works, looks like ->e has to be
non-NULL as well.  But that means the testcase I added this check for
somehow did not have loop->exits->next?!

Mine.

Reply via email to