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

    <tr>
        <th>Summary</th>
        <td>
            Bogus warning: 'memset' will always overflow; destination buffer has size 1, but size argument is 2 [-Wfortify-source]
        </td>
    </tr>

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

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

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

<pre>
    On recent LLVM trunk (towards LLVM 20), bisecting shows that <https://github.com/llvm/llvm-project/commit/0a9c08c59ba61e727e9dee6d71883d9106963442> "[Clang] Implement P2280R4 Using unknown pointers and references in constant expressions (https://github.com/llvm/llvm-project/pull/95474)" started to cause
```
$ cat test.cc
#include <cstring>
struct S { char m1, m2; };
void f(S & x) { std::memset(&x, 0, sizeof (S)); }
```
```
$ clang++ -std=c++23 -fsyntax-only test.cc
test.cc:3:17: warning: 'memset' will always overflow; destination buffer has size 1, but size argument is 2 [-Wfortify-source]
    3 | void f(S & x) { std::memset(&x, 0, sizeof (S)); }
      |                 ^
1 warning generated.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzElN-q4zYQxp9mfDMkyCP_vfCFc7KBwpaWLm2vZXnsqCtLQZJPTvr0xT4bupy7hUKFsSUZj7_fNzNSMZrZMXdQnqA8Z2pNVx-6mAYO86KcywY_PrpfHAbW7BJ-_vzHz5jC6r4iUJP8XYUxvu-SAGqBXnAwkXUybsZ49feI6aoSgny5pnSLIHugC9BlNum6DkftF6CLta_Px-EW_F-sE9BF-2Ux20SoVotGl-2gqpxrqrkdmauxzptGjm0uqraSRUEgPyEQQXl6scrNUJ7xp-Vmedmk_0rUiN8K_D1u0lb31fm7w5s3LnGIqNyIgScO7DRHNA61dzEpl5DfboFjNN7FjfqHOW6rtUCXtizqYveIMCYVEo-YPGq1RgbRQyW-XaIHKlCrhIljOmq970jjtF1H3qzUMQXjZpCfQPQxhVUn_IJQn1BfVcAl3_KwEMgTQn0GeQLRv3oz4gTUfEGgCt-A2v2LmMYNRvYLL5ETUANUvW0BxHaL5m_208b9ZdfePoN-UPxR_Z4AOgGd8LD_4qzflyTxMMWHS-rt4J19fAf5nMleguzzGmSPdxXcjtojUP3UWOPdWIvK3tUjon_lMFl_36SNHJNxKhnvcFiniQNeVdwxcLdlWNP7SoV53SvDRCSE8nT4c_IhmelxiH4NmqHcKBERJUL9gv-9g7iPLfbHAeWW2vyJjzM7DirxePze7Gzs5NjKVmXc5bWs2yqvRZFdO6mqaSpkURVFKYupokKUJXMztYNQuqbMdCSoFDnVohYNFUcaVUtt0XA9cDupFgrBizL2uBXz0Yc5MzGu3OVUlLnMrBrYxv3cIHJ8x_3t3nznLHR7BwzrHKEQ1sQU_w2TTLLcnfy8xv85udkabPfD3byDRqDLNydeO_onAAD__0oemqE">