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.