https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84157

--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> ---
(In reply to Uroš Bizjak from comment #3)
> Oops.
> 
> --cut here--
> diff --git a/gcc/combine.c b/gcc/combine.c
> index 970dd26..a9929f2 100644
> --- a/gcc/combine.c
> +++ b/gcc/combine.c
> @@ -11483,7 +11483,7 @@ change_zero_ext (rtx pat)
>  
>           if (mode != inner_mode)
>             {
> -             if (HARD_REGISTER_P (x)
> +             if (REG_P (x) && HARD_REGISTER_P (x)
>                   && !can_change_dest_mode (x, 0, mode))
>                 continue;
>  
> @@ -11501,7 +11501,7 @@ change_zero_ext (rtx pat)
>           x = SUBREG_REG (XEXP (x, 0));
>           if (GET_MODE (x) != mode)
>             {
> -             if (HARD_REGISTER_P (x)
> +             if (REG_P (x) && HARD_REGISTER_P (x)
>                   && !can_change_dest_mode (x, 0, mode))
>                 continue;
>  
> --cut here--

After rebuilding cc1 with the patch in place, the ICE no longer occurs on the
attached test-case.

I'll do a build and test run with this patch (which in the case of the setup
where I encountered the ICE means building host and accelerator compiler and
running libgomp testsuite), and report back.

Reply via email to