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

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:604459a09585314841cdce4698893c656481691b

commit r12-4182-g604459a09585314841cdce4698893c656481691b
Author: Richard Biener <rguent...@suse.de>
Date:   Tue Oct 5 09:28:20 2021 +0200

    More .DEFERRED_INIT expansion rework

    This avoids looking at the type size and instead uses the size
    as passed to .DEFERRED_INIT to determine the size of the non-MEM
    to be initialized.  It also arranges for possibly poly-int
    inits to always use zero-initialization rather than not initializing
    and when we need to pun puns the LHS instead of the constant value.

    That correctly initializes the variable-size typed array in the
    testcase for PR102285 and the SVE vector in PR102587 where for
    the testcase I needed to add a SVE capable -march as to not
    ICE later.

    2021-10-05  Richard Biener  <rguent...@suse.de>

            PR middle-end/102587
            PR middle-end/102285
            * internal-fn.c (expand_DEFERRED_INIT): Fall back to
            zero-initialization as last resort, use the constant
            size as given by the DEFERRED_INIT argument to build
            the initializer.

            * gcc.target/aarch64/sve/pr102587-1.c: Add -march=armv8.3-a+sve.
            * gcc.target/aarch64/sve/pr102587-2.c: Likewise.

Reply via email to