Just a guess, but maybe making the type global instead of a local type (with no linkage) will solve it:
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc +++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc @@ -63,6 +63,11 @@ struct datum
std::unique_ptr<datum> global;
+struct custom_cat : std::error_category {
- const char* name() const noexcept { return "miaow"; }
- std::string message(int) const { return ""; }
+};
gdb doesn't generally handle local types well -- a longstanding bug nobody has tried to fix.
However my patch wasn't intended to introduce this problem. Perhaps it is at fault.
Tom