<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59531>59531</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang static analyzer, false positive core.NullDereference
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          nbriggs
      </td>
    </tr>
</table>

<pre>
    scan-build reports a false positive for a NULL dereference in analyzing (attached) badanalysis.c
scan-build is using clang-15 on FreeBSD:

```
/usr/local/llvm15/bin/clang --version 
clang version 15.0.6
Target: i386-portbld-freebsd13.1
Thread model: posix
InstalledDir: /usr/local/llvm15/bin
```

```
% scan-build clang -c -o /var/tmp/badanalysis.o badanalysis.c
scan-build: Using '/usr/local/llvm15/bin/clang-15' for static analysis
badanalysis.c:18:17: warning: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'pcp') [core.NullDereference]
      pcp->next = cp->next;
      ~~~ ^
1 warning generated.
scan-build: Analysis run complete.
scan-build: 1 bug found.
```
The analysis seems to be foiled by the procedure call in `if (rightone(cp))`, if this is replaced by, for example `if (cp->v == v)` it does not report this NULL dereference.

[badanalysis.c.gz](https://github.com/llvm/llvm-project/files/10233771/badanalysis.c.gz)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUlFGPozgMxz9N-mKBIBQKDzy010U6abUvt_sBQmIgpzRBSejuzMN89pOhc9OOqtVdhaDE4W_7F9siBD1axJaVJ1aed2KJk_Ot7b0ex7DrnXppgxQ26RdtFHicnY8BBAzCBITZBR31FWFwHgR8-_H1Kyj0OKBHKxG0BWGFeXnVdgTGaxGjkBMqxhvohVptQYdUsuzMsuOdJx1gCfSVNMKOSV6Cs9B5xNNfZ1Yct_23e5Xdru2Vd0vwjHfGSWHoaa6XvGS867VlvFsFIUmu6IN2FravttX3tbxMs7TaLN-FHzGy4gi6qKuEAPRGJYNH7IPKizS_7Zs8CgUXp9DQbmLzazP9aUMUxqA6a0-m34f4NKnnmZZwh-yWmITEkYerIA_xMpPsHWv3e_IU34-wndfhP7FMaOGwlkCIImoJ7-qb9qO74pjXdDuQo5_CW21H-nuUEkOA6GDQaBR5t_grkrLHsJgY1mp6KC83gAC7GAOz0zaipxozTihUMHh3gavwWvQGSW2W85pRA6w8Secx_bYYc_6QY-V5CxjW3yznhBVfKAhgxRk-Xllxut_49vYGrPyyLeXvOcGIFr2IqNJniI83IuAXC9JdZoMRn-7MoV9GGNxi35U-lcH3Cf8lDgHxslLsqSm1QQX9C8QJYfZOolo8ghTGEExWZXogZF6PU3QWGa8JUkNXlTH-B-gB4qQDtaPH2Qi56pGFjht_CQr8Q2hjdCVehOy6CYGOoBwGsC7eRsim-nlepA_FXp4eKicdX-mEeD3FOAeaAbxjvBt1nJY-le5yK8_bI5m9-xtlZLwbtMHAeJdnvCgOh_xTQ6zKvNm87lRbqKZoxA7bvDrkWZ1ldb2b2rosamzUvin2Rd4Mh6ops3rfI1ZK5PVQ7XTLM85znpfZvtzv61ShVM3Q8L5R1b5Uku0zvAhtUgovdX7c6RAWbMumLPKdET2asM5hzi3-hNXIOKex7Ns1pX4ZA9tnRocYPlSijgbbrfvvG_AV_XpQj5P6WeXvFm_a_411DZC4rgn8EwAA__-jkfm3">