https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70602
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The following patch fixes this:
--- gcc/tree-sra.c (revision 234833)
+++ gcc/tree-sra.c (working copy)
@@ -2743,6 +2743,9 @@ generate_subtree_copies (struct access *
gimple_stmt_iterator *gsi, bool write,
bool insert_after, location_t loc)
{
+ /* Never write anything into constant pool decls. */
+ if (!write && constant_decl_p (agg))
+ return;
do
{
if (chunk_size && access->offset >= start_offset + chunk_size)
but I wonder if it just isn't a band-aid. Though, from what I remember about
SRA, when there are gaps it sometimes just does this weird copying there and
back. Martin, your thoughts on this?