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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #24 from Richard Biener <rguenth at gcc dot gnu.org> ---
commit 7e0c0500808d58bca5b8e23cbd474022c32234e4 (origin/master, origin/HEAD)
Author: Richard Biener <rguent...@suse.de>
Date:   Mon Oct 4 11:34:27 2021 +0200

    middle-end/102285 - refine .DEFERRED_INIT expansion

    This refines the way we figure whether we are facing a register
    that cannot be initialized by emitting a memset away from inspecting
    expanded RTL of the LHS to using the predicates expand_assignment
    is using to detect decls or MEM_REFs with non-memory DECL_RTL.

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

            * expr.h (non_mem_decl_p): Declare.
            (mem_ref_refers_to_non_mem_p): Likewise.
            * expr.c (non_mem_decl_p): Export.
            (mem_ref_refers_to_non_mem_p): Likewise.
            * internal-fn.c (expand_DEFERRED_INIT): Do not expand the LHS
            but check the base with mem_ref_refers_to_non_mem_p
            and non_mem_decl_p.

            * c-c++-common/pr102285.c: New testcase.

Reply via email to