https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82294
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Author: jakub Date: Tue Jan 8 10:22:00 2019 New Revision: 267709 URL: https://gcc.gnu.org/viewcvs?rev=267709&root=gcc&view=rev Log: Backported from mainline 2018-12-14 Jakub Jelinek <ja...@redhat.com> PR c++/82294 PR c++/87436 * expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument. * expr.c (categorize_ctor_elements_1): Likewise. Compute it like p_nz_elts, except don't multiply it by mult. Adjust recursive call. Fix up COMPLEX_CST handling. (categorize_ctor_elements): Add p_unique_nz_elts argument, initialize it and pass it through to categorize_ctor_elements_1. (mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers. * gimplify.c (gimplify_init_constructor): Likewise. Don't force ctor into readonly data section if num_unique_nonzero_elements is smaller or equal to 1/8 of num_nonzero_elements and size is >= 64 bytes. * g++.dg/tree-ssa/pr82294.C: New test. * g++.dg/tree-ssa/pr87436.C: New test. Added: branches/gcc-8-branch/gcc/testsuite/g++.dg/tree-ssa/pr82294.C branches/gcc-8-branch/gcc/testsuite/g++.dg/tree-ssa/pr87436.C Modified: branches/gcc-8-branch/gcc/ChangeLog branches/gcc-8-branch/gcc/expr.c branches/gcc-8-branch/gcc/expr.h branches/gcc-8-branch/gcc/gimplify.c branches/gcc-8-branch/gcc/testsuite/ChangeLog