<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">