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

--- Comment #1 from eggert at cs dot ucla.edu ---
Sorry, forgot to mention the incorrect GCC output. Here it is:
-----
analyzer-null-dereference-simple.i: In function ‘fix_overlays_before’:
analyzer-null-dereference-simple.i:79:35: warning: dereference of NULL ‘tail’
[CWE-476] [-Wanalyzer-null-dereference]
   79 |   if (!tail || end < prev || !tail->next)
      |                               ~~~~^~~~~~
  ‘fix_overlays_before’: events 1-5
    |
    |   72 |   while (tail
    |      |          ~~~~
    |   73 |          && (tem = make_lisp_ptr (tail, 5),
    |      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |      |          |
    |      |          (1) following ‘false’ branch (when ‘tail’ is NULL)...
    |   74 |              (end = marker_position (XOVERLAY (tem)->end)) >=
pos))
    |      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    |......
    |   79 |   if (!tail || end < prev || !tail->next)
    |      |      ~~~~~~                   ~~~~~~~~~~
    |      |      ||                           |
    |      |      ||                           (4) ...to here
    |      |      |(2) ...to here              (5) dereference of NULL ‘tail’
    |      |      (3) following ‘false’ branch...
    |

Reply via email to