<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/150563>150563</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
lld-link cannot find std::vector destructor in certain situations
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
AlexB8675
</td>
</tr>
</table>
<pre>
using latest clang-cl and lld-link (20.1.8) on Windows 11 24H2 with latest build tools 17.14.9, the following code snippet fails to link
```cpp
#include <vector>
struct Foo {
int x;
};
struct Bar {
std::vector<Foo*> a;
std::vector<Foo*> b;
};
int main() {
auto one = Foo(1);
auto* bar = new Bar(
{ &one },
{ &one }
);
return 0;
}
```
With the following terminal commands
```
D:\LLVM\bin\clang-cl.exe /nologo -TP -IC:\Users\Alex\Desktop\Test\build\_deps\mimalloc-src\include /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -clang:-std=c++23 -MDd -Zi /MDd /showIncludes /FoCMakeFiles\Test.dir\main.cpp.obj /FdCMakeFiles\Test.dir\ -c -- C:\Users\Alex\Desktop\Test\main.cpp
D:\LLVM\bin\lld-link.exe /nologo CMakeFiles\Test.dir\main.cpp.obj /out:Test.exe /implib:Test.lib /pdb:Test.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
```
Workarounds include:
- Not using C++20's parenthesis aggregate init of `bar`
- Adding `delete` for `bar`
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMVd1u2zgTfZrxzUCCTFmSfaELWY7RAE36oV92A-xNQZFjmQ1FCiQVp2-_oPyTdrddFDCsmeGZM6PDEcm9V70hqqHYQrFb8CkcrasbTW_bdVkVi87Kb_XklelR80A-oNDc9InQyI1ErWWilXlBYGuWpct0DWyD1uCzMtKePC6XyFYfGJ5UOF4ZuklpicFa7XFZpctVugHWYjgSHqzW9hSrCSsJvVHjSAEPXGmPwWKsBVkDZXb-iXGMLsuVEXqShJC3rySCdZDfxZWs8cFNIuDeWoRqC1mDqEzAN8ijA9XuYtyQW-5uSB8k5A3kzZW03VsLrIH8Dvk58b9B3b_LxOoDVwbYLNa1FJ-CRWviK-xwJlgvgW1uaWcEsAa72GC-Q0On2GzkicsYqRBYOZNUO2Dtz-Mx-COzozA5g9l7s99pfAY9xw38cYsCuUEZrlHYYeBG-jPy-8RdFKZoP3788wGKtlMGivY6QCm9UWxkb6y2vcXk6X-Y3LfnjD88OQ9FGycRinZH_iXYEYr2iXyIVHGGoGi_SBojblAD19qKxDsBRXsbB7bfPd8_5my2vjzfP-4-Pf8_OncfvIjPT102P2T8__zULjGZG4S8SeaN3QlgW2BblmPysJOY_KUiNJrA9v5oT_fnYj76e9s-8BfaK03-0m0qlYsdcmVSMY6p7b7OSPkrJCYCkwR_U4kr7y_Uvn6hs9rvYv9WlxFvpwB5MyMuDGoYtequQa26GBzlLTLKOfJKzitrIG-ydJZ44OKoDEHevJWrGJDUTX007h_bz3cPd49PzcdZ06nz33ygAfJGWOOtJnwhZ0jnbK43eXIXs5fqYp2U8aO1enb8kfQVbTW9W3wKV5JJydkQdpC6v0S5fOXjhfInH4F1L9zZyUiPlxGLkmdNgo824PmcbC_zkgGrPI7ckQlH8soj73tHPQ-EyqiA9oBQZh13Z_4EGykjAZSZJE2BoMzwYN0PqIWsc7nJN3xB9bIq8lVWrpdscawlY5ucuOwEMVZUXDJasU1Xrvg6Y8QPC1WzjBVZxYpsycqCpYdizbioRFZtSl5JDquMBq50qvXrkFrXL5T3E9XLIivKfKF5R9rPNwVj8eyZV4GxeHG4OiYl3dR7WGVa-eDfaYIKmurbXSG4MTbgQRn5z7MTJZ1PYetQGRTkAlcGvQoTD8oav5icro8hjD6msT2wfa_CcepSYQdg-1jz8khGZ7-SCHFkY6ce2P7yKq81-zsAAP__fiUelA">