https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119391
--- Comment #6 from Neil Booth <neilb at protonmail dot ch> --- Yes, the problem isn't that evaluation isn't in intmax_t (so the subject is now incorrect). That clearly happens as there are hundreds of tests that would fail. The problem is that cpp thinks it's undefined behaviour and so makes it a hard error in pedantic mode. It needs to be updated to whichever years' standards switched to two's complement arithmetic and so made it well-defined.