https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117925
--- Comment #2 from Rogério de Souza Moraes <rogerio.souza at gmail dot com> --- Another workaround raised by the team I work with is to use reinterpret_cast: (*(FnPtr)fnPtr)() Reinterpret_cast doesn't cause the ICE as well.