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

    <tr>
        <th>Summary</th>
        <td>
            False positive clang-analyzer-core.DivideZero with std::span
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          chrchr-github
      </td>
    </tr>
</table>

<pre>
    ~~~c++
struct A {
    explicit A(int& i) {
        data = std::span<int>{&i, 1};
    }
    void foo() const {
        for(auto& i : data)
                        i++;
    }
    std::span<int> data;
};

int f() {
    int i = -1;
    A a{i};
    i = 0;
    a.foo();
    return 1 / i;
}
~~~
~~~
[<source>:18:14: warning: Division by zero [clang-analyzer-core.DivideZero]](javascript:;)
   18 |     return 1 / i;
      |              ^
[<source>:22:12: note: Calling 'f'](javascript:;)
   22 |     return f();
      | ^~~
[<source>:16:5: note: The value 0 is assigned to 'i'](javascript:;)
   16 |     i = 0;
      | ^~~~~
[<source>:18:14: note: Division by zero](javascript:;)
   18 | return 1 / i;
      | ~~^~~
~~~
https://godbolt.org/z/zzeMqGxev
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMlEGTqygQxz9Ne-lKSpsY9eDBJOOe9ranvSGi8oqRLGDmTQ5-9i1MJptk580bCxGxoX_9b2nunOpHKUtId5AeIj75wdhSDFYMdtUrP0xN1Jj2vZznWQDtQosPEFfO20l4rBCy6wwiovx51EoojxVQrkYPtEUFVDxahavlniOwAzrfAquAVe7IR2D7sIq9BHvaKqA9JpAdgN0tD--3l5NRLXbGAOXBjzCj8__31hkLlPPJm4UIgVULAVBxMYS4uDR1DfKXDj_nvez2seie-NKr0WN3ZXygCx_UIsQqeXBaIYdsp56Dv9jGD3N8fRPgYd5KP9kREwSqUT3QLYN5np8G4Tdge2cmK2TIAquSPHSbINgbt6Ma-zA8qJNyyozYvONZWoOQ7oTmY7_iI9fvZ2lXwli5Dnat_FtaA-khNMp_8BN3wqqjX2Tc3VKAiEmOkO3xC_ZLOj-MbhekL78KgCgEEDocjZfhuedaq7FHoKwDyn7PRfTM1X0i94UL0pcv1NwCq9J7lr8GiSeuJ4kxKofXA9miNwFPfQsv2d7wPvs97ri-lecPtOckfzt_v83dPN-pdIMavD-6sCnVQHVv2sZovza2B6rP4T7LP__546c8RW3J2oIVPJJlsi2SbZqllEVDSU3WEUuaghMx2WyFlEkrOy5SkXUNyyJVUkwszpM4zlOKs3XBki7tWFOkSSIYpbCJ5StXeq316TX4jpRzkyy3mzTfRJo3UrulWBKN8g2Xj0AUaqctw5pVM_UONrFWzrv_dvHKa1nWXDuJR-OUVyeJX58YfFN-eCw30WR1-STTUqPXwrwC1cHd9bE6WvNDCg9UL5AOqF6C-DcAAP__HHygNg">