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.