The libc++ data formatter for std::shared_ptr allows any namespace, but the test asserts that it must be the default __1 namespace. Relax the regex to allow anything that looks like __.* (although we use __[^:]* so we don't match arbitrarily long text).
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Added that one too.
There is also this one: https://github.com/llvm/llvm-project/blob/09531ede6d5622da68941902072dbca517d31318/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp#L222
But updating it didn't have the effect I was expecting, so there might be something more involved. I'll save that for a later patch.
I looked at this one again and feeling more sure that it will be a more complicated fix. FindLibCppStdFunctionCallableInfo there is looking at __f_ and assuming the type looks like __value_func. However, when using unstable libc++ ABI (and IIUC std::__1 is an indication that unstable libc++ is *not* being used), that enables _LIBCPP_ABI_OPTIMIZED_FUNCTION which changes __f_ to __policy_func with an entirely different layout. The fact that it hard codes std::__1 is the least of its problems w.r.t using a non-vanilla libc++.