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

--- Comment #32 from Hector Oron <hector.oron at gmail dot com> ---
(In reply to Richard Biener from comment #31)
> eipa_sra introduces the remaining SSA name with non-default alignment via

[PATCH]

> it would be nice to see this IL checking on trunk and thus results from
> testing on affected targets - I'll give it a try in x86_64.

I have backported the patch to 5.3.1, which I am using.. and applying the
following patch based on yours, dot does not fail here anymore.

I also have a gcc built with tests, which I'll try to submit to relevant
mailing list.

Extending already commited patch from comment #20 with:

Index: gcc-5-5.3.1/src/gcc/tree-sra.c
===================================================================
--- gcc-5-5.3.1.orig/src/gcc/tree-sra.c
+++ gcc-5-5.3.1/src/gcc/tree-sra.c
@@ -936,7 +936,7 @@ create_access (tree expr, gimple stmt, b

   access = create_access_1 (base, offset, size);
   access->expr = expr;
-  access->type = TREE_TYPE (expr);
+  access->type = TYPE_MAIN_VARIANT (TREE_TYPE (expr));
   access->write = write;
   access->grp_unscalarizable_region = unscalarizable_region;
   access->stmt = stmt;
@@ -1026,7 +1026,7 @@ completely_scalarize_var (tree var)

   access = create_access_1 (var, 0, size);
   access->expr = var;
-  access->type = TREE_TYPE (var);
+  access->type = TYPE_MAIN_VARIANT (TREE_TYPE (var));
   access->grp_total_scalarization = 1;

   completely_scalarize_record (var, var, 0, var);
Index: gcc-5-5.3.1/src/gcc/tree-ssa.c
===================================================================
--- gcc-5-5.3.1.orig/src/gcc/tree-ssa.c
+++ gcc-5-5.3.1/src/gcc/tree-ssa.c
@@ -965,6 +965,14 @@ verify_ssa (bool check_modified_stmt, bo
                              name, stmt, virtual_operand_p (name)))
                goto err;
            }
+
+         if (TYPE_ALIGN (TREE_TYPE (name))
+             != TYPE_ALIGN (TYPE_MAIN_VARIANT (TREE_TYPE (name))))
+           {
+             error ("type with non-default alignment");
+             goto err;
+           }
+
        }
     }

Reply via email to