https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61657
--- Comment #5 from Vittorio Zecca <zeccav at gmail dot com> --- Just confirmed adding printf("up=%li down=%li up-down=%li\n", up,down,up-down); before line 2670. Output is up=123 down=-9223372036854775808 up-down=-9223372036854775685 You could probably get an ICE with gcc_assert(up-down>0);