https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81942
--- Comment #7 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- Hi Paolo, Thanks for working on this. (In reply to Paolo Carlini from comment #6) > It would be nice if somebody with a fully functional ARM toolchain could > check whether something like the below at least avoids the ICE without > causing any regressions. I hope it does. > > Index: constexpr.c > =================================================================== > --- constexpr.c (revision 251553) > +++ constexpr.c (working copy) > @@ -3679,7 +3679,7 @@ breaks (tree *jump_target) > { > return *jump_target > && ((TREE_CODE (*jump_target) == LABEL_DECL > - && LABEL_DECL_BREAK (*jump_target)) > + && (LABEL_DECL_BREAK (*jump_target) || DECL_ARTIFICIAL (*jump_target))) > || TREE_CODE (*jump_target) == EXIT_EXPR); > } The patch works for me on the testcase I provided, that is compilation process returns a success error code instead of ICEing. Best regards.