https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91516
Bug ID: 91516 Summary: Please also export the base object constructor for __shared_ptr<filesystem::_Dir>; Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: rafael at espindo dot la Target Milestone: --- Given #include <filesystem> void foo() { for (auto& dev : std::filesystem::directory_iterator("slaves")) { } } gcc calls _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC1EOS5_, but clang calls _ZNSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE2EEC2EOS5_. In the libstdc++.so, only the C1 variant is exported, so a program compiled with clang and libstdc++ fails to link.