https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102234
--- Comment #2 from sin-ack <sin-ack at protonmail dot com> --- An important thing to note is that when the destructor is private, the ICE occurs. In the original code, when I made the desructor public (after adding the forgotten public: before the destructor), the code will successfully compile.