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

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>:

https://gcc.gnu.org/g:76773d3fea4daaaf5b0f6d79d9f48ffe6b3c97fd

commit r12-3896-g76773d3fea4daaaf5b0f6d79d9f48ffe6b3c97fd
Author: Andrew Pinski <apin...@marvell.com>
Date:   Sun Sep 26 05:44:58 2021 +0000

    Fix PR c/94726: ICE with __builtin_shuffle and changing of types

    The problem here is __builtin_shuffle when called with two arguments
    instead of 1, uses a SAVE_EXPR to put in for the 1st and 2nd operand
    of VEC_PERM_EXPR and when we go and gimplify the SAVE_EXPR, the type
    is now error_mark_node and that fails hard.
    This fixes the problem by adding a simple check for type of operand
    of SAVE_EXPR not to be error_mark_node.

    OK? Bootstrapped and tested on aarch64-linux-gnu with no regressions.

    gcc/ChangeLog:

            PR c/94726
            * gimplify.c (gimplify_save_expr): Return early
            if the type of val is error_mark_node.

    gcc/testsuite/ChangeLog:

            PR c/94726
            * gcc.dg/pr94726.c: New test.

Reply via email to