https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93573
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Fixed the error-recovery bug on the trunk, but the ice on the #c4 testcase is still there (and the question is if it is valid or not). If it is valid, probably the FE or gimplifier needs to turn that cast to VLA union into creation of a VLA temporary and assigning the cast operand into the right field of it.