https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Slightly better testcase where basic_string, array and list are at least
templates, again -std=c++20:
namespace std {
struct __new_allocator {};
template <typename> using __allocator_base = __new_allocator;
struct allocator : __allocator_base<int> {};
template <class> struct initializer_list {
void *_M_array;
decltype(sizeof 0) __rebind;
};
template <typename T>
struct basic_string {
basic_string(const T *, allocator = allocator());
~basic_string();
};
using string = basic_string<char>;
template <typename T>
struct array {
T _M_elems;
};
template <typename T>
struct list {
list &operator=(initializer_list<T>);
};
}
struct RGWSyncTraceManager {
std::list<std::array<std::string>> admin_commands;
void hook_to_admin_command();
};
void RGWSyncTraceManager::hook_to_admin_command() {
admin_commands = {{""}, {""}};
}