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.

Reply via email to