https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124217

--- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Idea (based on the example in bug 124433): it would be really cool to explain
why the divisor is zero for such cases e.g.:

     7  |  do c %= (5ull << 40) & m;
        |          ~~~~~~~~~~~~~~~~
        |                |
        |                divisor is zero

     7  |  do c %= (5ull << 40) & m;
        |          ~~~~~~^~~~~    ^
        |                |        |
        |                |        has range [0, 4294967295]
        |                has value 5497558138880

  and maybe humanize these by showing them in hex:

     7  |  do c %= (5ull << 40) & m;
        |          ~~~~~~^~~~~    ^
        |                |        |
        |                |        has range [0, 0xffff_ffff]
        |                has value 0x500_0000_0000

  and maybe humanize further by breaking up digit groups:

     7  |  do c %= (5ull << 40) & m;
        |          ~~~~~~^~~~~    ^
        |                |        |
        |                |        has range [0, 0xffffffff]
        |                has value 0x50000000000

Reply via email to