https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78201
--- Comment #2 from Yvan Roux <yroux at gcc dot gnu.org> --- Hi Richard, sorry for the lack of context, here is the full backtrace: reduced.C: In function 'void f()': reduced.C:7:8: internal compiler error: in tree_to_shwi, at tree.c:7313 char a[e] = ""; ^ 0x1007a32 tree_to_shwi(tree_node const*) .../gcc.git~master/gcc/tree.c:7313 0x105bffa default_use_anchors_for_symbol_p(rtx_def const*) .../gcc.git~master/gcc/varasm.c:6810 0x9e8776 use_anchored_address(rtx_def*) .../gcc.git~master/gcc/explow.c:549 0xa0e148 expand_expr_addr_expr_1 .../gcc.git~master/gcc/expr.c:7729 0xa00e6c expand_expr_addr_expr .../gcc.git~master/gcc/expr.c:7920 0xa00e6c expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) .../gcc.git~master/gcc/expr.c:10998 0x8ca22e expand_expr .../gcc.git~master/gcc/expr.h:279 0x8ca22e get_memory_rtx .../gcc.git~master/gcc/builtins.c:1279 0x8ce361 expand_builtin_memcpy_args .../gcc.git~master/gcc/builtins.c:2995 0x8da0ea expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int) .../gcc.git~master/gcc/builtins.c:6236 0xa01135 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) .../gcc.git~master/gcc/expr.c:10773 0x8fb8cc expand_expr .../gcc.git~master/gcc/expr.h:279 0x8fb8cc expand_call_stmt .../gcc.git~master/gcc/cfgexpand.c:2668 0x8fb8cc expand_gimple_stmt_1 .../gcc.git~master/gcc/cfgexpand.c:3581 0x8fb8cc expand_gimple_stmt .../gcc.git~master/gcc/cfgexpand.c:3747 0x8fd410 expand_gimple_basic_block .../gcc.git~master/gcc/cfgexpand.c:5754 0x9026e6 execute .../gcc.git~master/gcc/cfgexpand.c:6368 A quick check shows that using tree_to_uhwi instead of tree_to_shwi fixes the issue, but I'll look calling site as well.