https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70153
--- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> --- A run-time test: unsigned long long int foo (unsigned long long int i) { return 2ULL * ((1 + (unsigned long int) +1) * i); } int main (void) { if (foo (3ULL) != 12ULL) __builtin_abort (); }