https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108773
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Reduced testcase: 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; }; struct basic_string { basic_string(const char *, allocator = allocator()); ~basic_string(); }; struct array { basic_string _M_elems; }; struct list { void operator=(initializer_list<array>); }; } struct RGWSyncTraceManager { std::list admin_commands; void hook_to_admin_command(); }; void RGWSyncTraceManager::hook_to_admin_command() { admin_commands = {{""}, {""}}; }