_ZNSt6chrono9tzdb_list14const_iteratorppEi;
_ZN9__gnu_cxx21zoneinfo_dir_overrideEv;
+ # __shared_ptr<directory_iterator::_Dir>::operator bool()
+ _ZNKSt12__shared_ptrINSt10filesystem4_DirELN9__gnu_cxx12_Lock_policyE[012]EEcvbEv;
+ _ZNKSt12__shared_ptrINSt10filesystem7__cxx114_DirELN9__gnu_cxx12_Lock_policyE[012]EEcvbEv;
+ # __shared_ptr<recursive_directory_iterator::_Dir_stack>::operator bool()
+ _ZNKSt12__shared_ptrINSt10filesystem28recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEcvbEv;
+ _ZNKSt12__shared_ptrINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackELN9__gnu_cxx12_Lock_policyE[012]EEcvbEv;
+
} GLIBCXX_3.4.30;
# Symbols in the support library (libsupc++) have their own tag.
_Multi = 0, _Root_name, _Root_dir, _Filename
};
- path(basic_string_view<value_type> __str, _Type __type)
- : _M_pathname(__str)
- {
- __glibcxx_assert(__type != _Type::_Multi);
- _M_cmpts.type(__type);
- }
+ path(basic_string_view<value_type> __str, _Type __type);
enum class _Split { _Stem, _Extension };
struct path::_Cmpt : path
{
- _Cmpt(basic_string_view<value_type> __s, _Type __t, size_t __pos)
- : path(__s, __t), _M_pos(__pos) { }
+ _Cmpt(basic_string_view<value_type> __s, _Type __t, size_t __pos);
_Cmpt() : _M_pos(-1) { }
{ return origin + c.str.data() - input.data(); }
};
+inline
+path::path(basic_string_view<value_type> __str, _Type __type)
+: _M_pathname(__str)
+{
+ __glibcxx_assert(__type != _Type::_Multi);
+ _M_cmpts.type(__type);
+}
+
+inline
+path::_Cmpt::_Cmpt(basic_string_view<value_type> __s, _Type __t, size_t __pos)
+: path(__s, __t), _M_pos(__pos)
+{ }
+
struct path::_List::_Impl
{
using value_type = _Cmpt;
--- /dev/null
+// { dg-do link { target c++17 } }
+// { dg-options "-fkeep-inline-functions" }
+
+#include <filesystem>
+int main()
+{
+ // PR libstdc++/108636 - link failure with -fkeep-inline-functions
+}