https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83603
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- And one another test-case with a bit different back-trace: $ cat ice.c char *a, *b; void c () { __builtin_strncat (a, b, -1); } $ gcc ice.c -Os -Wrestrict during GIMPLE pass: wrestrict ice.c: In function ‘c’: ice.c:2:6: internal compiler error: in maybe_diag_overlap, at gimple-ssa-warn-restrict.c:1365 void c () { __builtin_strncat (a, b, -1); } ^ 0x914415 maybe_diag_overlap ../../gcc/gimple-ssa-warn-restrict.c:1363 0x914415 check_bounds_or_overlap(gcall*, tree_node*, tree_node*, tree_node*, tree_node*, bool) ../../gcc/gimple-ssa-warn-restrict.c:1752 0x914682 check_call ../../gcc/gimple-ssa-warn-restrict.c:1685 0x914682 before_dom_children ../../gcc/gimple-ssa-warn-restrict.c:106 0x134f0a7 dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:308 0x90b109 execute ../../gcc/gimple-ssa-warn-restrict.c:120