<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62212>62212</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Using `pmr::monotonic_buffer_resource` caused link errors on osx-64
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
macrostring
</td>
</tr>
</table>
<pre>
Code example:
```
#include <array>
#include <cstddef>
#include <memory_resource>
#include <string>
#include <vector>
int main() {
std::array<std::byte, 20000> buf;
std::pmr::monotonic_buffer_resource pool{buf.data(), buf.size()};
std::pmr::vector<std::pmr::string> coll{&pool};
for (int i = 0; i < 1000; ++i) {
coll.emplace_back("just a non-SSO string");
}
}
```
Clang version:
```
Homebrew clang version 16.0.1
Target: x86_64-apple-darwin21.6.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
```
Compiling command:
```
clang++ -fsanitize=address,undefined -std=c++17 -Wall -Wextra -Wpedantic -fuse-ld=lld -g test.cc -o test
```
Errors:
```
ld64.lld: error: undefined symbol: std::__1::pmr::get_default_resource()
ld64.lld: error: undefined symbol: vtable for std::__1::pmr::monotonic_buffer_resource
ld64.lld: error: undefined symbol: vtable for std::__1::pmr::memory_resource
ld64.lld: error: undefined symbol: std::__1::pmr::memory_resource::~memory_resource()
ld64.lld: error: undefined symbol: typeinfo for std::__1::pmr::monotonic_buffer_resource
ld64.lld: error: undefined symbol: typeinfo for std::__1::pmr::memory_resource
```
I've compiled the same piece of code on Ubuntu 22.04 with clang++-16 successfully.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VU-P47YP_TTKhbAhyx7HOfgwSSb47el32F3MMZAlOtGuLBn6MzPpoZ-9kD1Nptmk2BZtgSCQSZp874mkuffqYBBb8rAmD9sFj-FoXTtw4awPTpnDorPy1G6sRMA3PowaSflI6JbQR1LT99_8yEplhI4SgZQb7hw_kfLplk_4ICX2d7wDDtad9g69jU7gnagZ3R3nC4pg3cU5_SsTYODKENYQtgKyXM92AB9kIlU-voPenA3dKSBhG2CUUkrKJ-hiT8r1x7QfXh8HNx8Ga2ywRol9F_se3ZkMjNZqslx3sc8lD3zGkioki1e_4LtluT2XuVXgd4KbH11nYUBYnWoRVs9Vt9fIe-uAsCYJo4CUW6CkXE_HDRQT4TUQtiZsra4Ugyl5jsOoucB9x8X3CTj7Fn0ADsaa7PPn_8M7GMYSpwuhhGUGcj78sZc2mpsDvKDzypp7Dfc_O2Dn8BXEx2go6pzmxRzyhbsDBlI-wltT7-sq4-OoMZPcvSrDirzO33N9OTrkEgYrUafw0Xr1Nrs-GR-41ii3KkkMhO2id4TttBVcE7azY0hP-mUgbNcpc5uRHUallTmAsMPAjbzHaiIzqw5Z77lRIbVFueVSOvSesE00EntlUEI23f9WzPHFErJnrjVkz_gWHIfseUTJTVACsj56zHSK1lpCdoCAPuRCQGan400wT85Z5-9B1bKucp1yPgKmyHS4gPOnobOTmucu3e-Lq3Y9YNhL7HnU4TLy8wz8tRovgXcap57-k3J3J_PfqXa1yv4x1X7Ykcn467X178gYTiMq09v_SsifrndLyqt-_ETY8gXTgI1Ko4RwRPB8QBgVCgTbg0jfMWvgaxdNiMBYTit4VeEIH8YuK2rwUQj0vo9an_I5-0K2pVyVK77AtqibomGroi4Wx1YUDTYrgV3fLdmKFkUl6nJVUd4UTSOabqFaRllJq6IpqqqmRf7Q8PqBLeuOC05p05CK4sCVztMSya07LJT3EduasYItNO9Q--kTzZjBV5icaak-bBeuTe9kXTx4UlGtfPCXLEEFje1Xn9YOqelPXF5NQfDoUYJW5vt8dT4pZv1bVleL6HR7DGGcdgLbEbY7qHCMXS7scFmCE6TR2W8o0mqc8HrCdhOf3wIAAP__XlePkA">