https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88990
--- Comment #1 from Iain Buclaw <ibuclaw at gdcproject dot org> --- Doesn't look like invalid code, but 'extern' is propagated erroneously to all declarations inside the block, even paraneters, which is why the ICE occurs.