<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/72455>72455</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
-Wstringop-overread not implemented in Clang
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang,
clang:diagnostics
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ldionne
</td>
</tr>
</table>
<pre>
GCC warns on the following code:
```
#include <cstring>
void f(char* dst){
std::memcpy(dst, "abc", 5);
}
```
```
<source>: In function 'void f(char*)':
<source>:4:16: warning: 'void* memcpy(void*, const void*, size_t)' reading 5 bytes from a region of size 4 [-Wstringop-overread]
4 | std::memcpy(dst, "abc", 5);
| ~~~~~~~~~~~^~~~~~~~~~~~~~~
Compiler returned: 0
```
Clang doesn't warn. I tried with `-Wall -Wextra`. It seems like it should be fairly easy to warn on this with Clang, perhaps we should implement that diagnostic?
https://godbolt.org/z/qP736q5je
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycU8GO4ygQ_ZrypZTIBhMnBx_S6cmqb3vr4wpDxWYWgwdwZzOH-fYVdnrSM2rtYZFlC6j36r0HljGa3hG1IJ5APBdyToMPrdXGO0dF5_Wt_eN0wqsMLqJ3mAbCi7fWX43rUXlNwI9QPkP5_t6V92edMm6csrMmBH5SMQXjeuBfPkLevNF4AbZXgwzAjqhjAnaA5mndR0SMSedG_DjSqKYbsP1SdEJgTHYKGMsTkWH8DoPm-XNJny7yU_RzUJS18SO-OLzMTiXjHQJrfpeY-7DmYf1XdA38WO0yTc5tMXx8Z8n-fnq4L2TpyruY8MNCNN_pr7Q2wkBS58AFdrdEES_BjygxUJ8F-stSjTWCeNq8riH7aePfKGQkiHsSuaI54f8MdMEtBD8eA8SXH7-Mtfbkx8lYChgozcFRboblf5zHyUrXo_YUHbAmLclt8QVTMKTxatKAsCs3r9Ja3LzSPylI2JVbfEkYicaI1vxNaBLGwc9WY0d4kSbYG5KMN0x-YVyvsIkr4dIz25woDHKKeKV3uBknSyO5hGmQCbWRvfMxGQX8_FH2kNIUc5DsDOzce915m7Y-9MDO34Gdv_3Z8N038ZUK3XJ94AdZUFs1ZVkeqqZsiqEtD8TqfbWng9RMMrkvhZSqPqhS1IJ1rDAtKxmvqkowXld1s-WXTlSXHSmpSYtOQl3SKI3dWvs25t6FiXGmtmG1EIWVHdm4_OCMqdVxPtufM358uIt5TzwXoc1cm27uI9SlNTHFB3syyVL7yT1D59MjOdJo3JpxMQfb_haVScPcbZUfgZ0z9f2zmYL_SioBOy8uIrDzYuTfAAAA__9Edmod">