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

    <tr>
        <th>Summary</th>
        <td>
            LLVM 18.1: C++ exceptions are broken in the MSan build
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          ns-osmolsky
      </td>
    </tr>
</table>

<pre>
    It looks like C++ exceptions are broken when using MSan with libcxx. Here is the minimum test program:

```
#include <iostream>

int main(int argc, char **argv)
{
    try {
        std::cout << "Testing C++ exception...\n";
        throw std::runtime_error("boo");
    } catch(std::exception &ex) {
        std::cout << "Exception worked! (" << ex.what() << ")\n";
    }

    return 0;
}

```

Output:
```
Testing C++ exception...
MemorySanitizer:DEADLYSIGNAL
==3740922==ERROR: MemorySanitizer: stack-overflow on address 0x7ffe51dc5c38 (pc 0x7fde6dc661fc bp 0x7ffe51dc60a0 sp 0x7ffe51dc5c40 T3740922)
MemorySanitizer:DEADLYSIGNAL
MemorySanitizer: nested bug in the same thread, aborting.
```

Linkage:
```
$ ldd test | grep llvm
        libc++.so.1 => /opt/llvm-18/lib-msan/libc++.so.1 (0x00007fee9257d000)
        libc++abi.so.1 => /opt/llvm-18/lib-msan/libc++abi.so.1 (0x00007fee922c8000)
 libunwind.so.1 => /opt/llvm-18/lib-msan/libunwind.so.1 (0x00007fee920ab000)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVcFu4zYQ_RrqMohAkbIlHXRw7KRdINsFkkWBngqKHEusJVIgqdjp1xeUEydKtsG2hiFQ1Dy-N29mQOG9bg1iTVbXZLVLxBQ662rjr6wfbO8PT0lj1VP9JUBv7cFDrw8IW8KuCbsGPEkcg7bGg3AIjbMHNHDs0MDktWnh64MwcNShg1438nRK4Vd0CNpD6BAGbfQwDRDQBxidbZ0YCN8QuiP05bmmz__zK-PayH5SCIRvtfXBYcTcvMVoE2AQ2hBWxqVwrSRsC7ITDgjbELYRrn0krHoGFdfnBQBAcE-w2Ig_H1SUxTfSTiESE74Fwth39CFm-cGONE3JamsIY4S_Oyt0zh5fT3STCXrAP9E56wgrCWONtRHIqgWWFDuQIsiOsPKCvhACYWs8EVb9vPibC_Zo3QEVYRmcBbwE4Sk9diLMm9UbZJT2g-xIsXtbhbjlMEzOAL3EvYt5X935-W0K4xRe-2AZ86nnc8RXHKx7ehBGB_03OsI3u5vN7u6Phy-__La5ez6U7wjf8SKnVcwivtzc33-7J3wDH_Hgg5CHK_uIbt_bI1gDQimH3gM9Ffs9rjIlV5KX0cBRzpsK10qu19leQjO-CVtTQcGPC2BO4fuLlpeu_JksfqDUoA-ooJla0GYeMi8GjF2HQsUpEI110cD0kwrcaXMQLf5bCQjLoVfqPLak2ELrcIS-fxyWnRdH_lyl1Ns0g9nnGyDs1o6BsNuIuMrKuNLN1eCFOS-XIFbSE6WUFnvEiq0KRSm9uPSRSjT6f7G94paETJYLwl43kzlqo_4bywKzZKCiectwMTtRNVcVr0SCdVbQquQ8L8ukqzNExfI9K0rOhWBiJfYSG5FT2eRClirRNaMsp5wWWZHneZFWDatYQUWesTVfZRnJKQ5C92mUm1rXJtr7Cesy53mZ9KLB3s83AmMGjzB_jOO-2iWunlNsptaTnPbaB_96StChx_ru7vevkJVpFhvy86viuUfna6KZdK-SyfV1F8LoY_exW8JuWx26qUmlHZ79fbF5dPYvlNH1WaAn7HZO4J8AAAD__ytz8zw">