https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94479
--- Comment #6 from Thomas Klausner <tk at giga dot or.at> ---
I can most easily test 8.3.0. I adapted your patch:

--- gcc/gimplify.c.orig 2019-02-07 14:44:31.000000000 +0000
+++ gcc/gimplify.c
@@ -6074,7 +6074,10 @@ gimplify_addr_expr (tree *expr_p, gimple
         an incomplete type.  Re-build ADDR_EXPRs in canonical form
         here.  */
       if (!types_compatible_p (TREE_TYPE (op0), TREE_TYPE (TREE_TYPE (expr))))
+      {
        *expr_p = build_fold_addr_expr (op0);
+       STRIP_USELESS_TYPE_CONVERSION (*expr_p);
+      }

       /* Make sure TREE_CONSTANT and TREE_SIDE_EFFECTS are set properly.  */
       recompute_tree_invariant_for_addr_expr (*expr_p);

but it still fails:

rebase.i: In function ‘e’:
rebase.i:7:23: warning: initialization of ‘char’ from ‘char *’ makes integer
from pointer without a cast [-Wint-conversion]
   struct b f[] = {{}, "", f, a};
                       ^~
rebase.i:7:23: note: (near initialization for ‘f[1].c’)
rebase.i:7:27: internal compiler error: in
recompute_tree_invariant_for_addr_expr, at tree.c:4487
   struct b f[] = {{}, "", f, a};
                           ^
0x12d5503 recompute_tree_invariant_for_addr_expr(tree_node*)
        ../../gcc-8.3.0/gcc/tree.c:4487
0x7d57be gimplify_addr_expr
        ../../gcc-8.3.0/gcc/gimplify.c:6083
0x7d57be gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc-8.3.0/gcc/gimplify.c:11580
0x7dd9c8 gimplify_modify_expr
        ../../gcc-8.3.0/gcc/gimplify.c:5649
0x7d4c56 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc-8.3.0/gcc/gimplify.c:11533
0x7d6f58 gimplify_stmt(tree_node**, gimple**)
        ../../gcc-8.3.0/gcc/gimplify.c:6689
0x7d70e6 gimplify_and_add(tree_node*, gimple**)
        ../../gcc-8.3.0/gcc/gimplify.c:441
0x7d70e6 gimplify_init_ctor_eval
        ../../gcc-8.3.0/gcc/gimplify.c:4602
0x7d6ff4 gimplify_init_ctor_eval
        ../../gcc-8.3.0/gcc/gimplify.c:4597
0x7da0fc gimplify_init_constructor
        ../../gcc-8.3.0/gcc/gimplify.c:4998
0x7daa72 gimplify_modify_expr_rhs
        ../../gcc-8.3.0/gcc/gimplify.c:5261
0x7dd941 gimplify_modify_expr_rhs
        ../../gcc-8.3.0/gcc/gimplify.c:5149
0x7dd941 gimplify_modify_expr
        ../../gcc-8.3.0/gcc/gimplify.c:5604
0x7d4c56 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc-8.3.0/gcc/gimplify.c:11533
0x7d6f58 gimplify_stmt(tree_node**, gimple**)
        ../../gcc-8.3.0/gcc/gimplify.c:6689
0x7dca90 gimplify_and_add(tree_node*, gimple**)
        ../../gcc-8.3.0/gcc/gimplify.c:441
0x7dca90 gimplify_decl_expr
        ../../gcc-8.3.0/gcc/gimplify.c:1711
0x7d5512 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
        ../../gcc-8.3.0/gcc/gimplify.c:11730
0x7d6f58 gimplify_stmt(tree_node**, gimple**)
        ../../gcc-8.3.0/gcc/gimplify.c:6689
0x7d77fe gimplify_bind_expr
        ../../gcc-8.3.0/gcc/gimplify.c:1331
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to