<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/87162>87162</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
MemorySanitizer does not detect partially initialized values
</td>
</tr>
<tr>
<th>Labels</th>
<td>
compiler-rt:msan
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wheatman
</td>
</tr>
</table>
<pre>
The following code when compiled with `-O1` or above does not provide any errors even though some parts of x have not been initialized.
```cpp
#include <stdint.h>
#include <string.h>
int main(int argc, char **argv) {
uint32_t x;
uint32_t y = argc;
memcpy(&x, &y, 1);
return x;
}
```
The code does give an error when compiled with `-O0`
```
==1==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x555f7308f65a in main /app/example.cpp:8:5
#1 0x7f3c4fc29d8f (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#2 0x7f3c4fc29e3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#3 0x555f72ff52e4 in _start (/app/output.s+0x322e4)
SUMMARY: MemorySanitizer: use-of-uninitialized-value /app/example.cpp:8:5 in main
Exiting
```
this is all with post 18 trunk(7de82ca369b5e9114636420a16e1c5d25283421d)
https://godbolt.org/z/TYePeb5r4
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVF-PmzgQ_zTOyygRjMGBhzxkm-bUh_ZObU-nPkXGHsB3xka2ySb99CfIbjdd9SpVOgnZyMPM_P6YkTGazhHtWPnAysNKTqn3YffYk0yDdKvG6-vuc0_Qemv9o3EdKK8JHntyoPwwGksaHk3qgYls_XvORAY-gGz8mUB7iuB8gjH4s9EE0l2BQvAhAp3JQer91PUQ_UAwypAi-BYu0MszLXkNkQPjTDLSmq-kN8CyA8v2T6vIbo8ax6cT5MYpO2kCxt_EpI1Lm57xtz8OB-O6-_CyGpdgkMYxrOZXGTrF8A2oXgZguGe4l6E7M6yBbR9uKQAAk3GJ4ynBhfEfHV-B8cOt2n18oEGNV4YVQ3GZ-zAU13nPGdbffRkoTcHdlWfbwysd7mnMpi1WLSZ05jyrfxP_P927q_GqJD8wfshv21_7jx_effiN8T28p8GH6yc5O_SVwnw0RVr7dj25O9vWZ2kneqHCkGeQXcqybLc8q1pRSjBuUR0YHuU4MjzSRQ6jpc1sLt9XjO_L7yrkkF22LVdFq7DWVQuLiEdrGobHSyVOolhb46bLunPTLaA20W8Ew4fssqQsJmL1MBmr3-kZvcKq1rLMtrnkvK41VTXXKNsq10LyTAkUhaCcZnPuweA9GOLtTOd0mlueYpIhnZ64_RJC4v8jQv4sOLZtiVQsCBdsT7BuqvspjVPaxAUCR6TiW6Hb-unP9-_3H7_8svs_NfbZ_VuLtxeTjOt-crlTbyKYCNLa2_UdfUyQV5DC5P5hWG01VagkF3VTUp3nheCiwEzmgnJVaiyx4gXm-hu5PqUxMr5neGR47LxuvE0bHzqGx68Mj5-_0B_UlKFY6R3XNa_linb5Ns-rXGxRrPqd1gXWpEqhkcu2aZTKKC-yrJS81XpbrcwOMywyzrNc8KoQm4a3qHCLMhc5KVWzIqNBGrux9jzMvVcmxol21TYXuLKyIRuXQY349POGdUiM74coHUOcB3jYzcnrZuoiKzJrYoov5ZJJlnavbHuZ0poSqbQMYiOtvd5PXlhMjLCagt29Esukfmo2yg_zHbbn5209Bv83qcTwuPCIDI8LlX8DAAD__7hp7EU">