https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83252
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- BTW, better avoid any headers if possible, so if: long long int m33 = 8707493562598231894LL; long long int m46 = 2720142332956971588LL; long long int m30 = 5337614525613944604LL; unsigned int m21 = 1092738485U; long long int a43 = -2228108721620697360LL; unsigned int a16 = 3060393125U; long long int a103 = -5267148545474741934LL; long long int a23 = 628644587444781171LL; long long int a120 = -1929881923114969467LL; unsigned int a31 = 342358347U; unsigned int a50 = 4141428744U; unsigned int a92 = 3147872734U; long long int a20 = 2249711228974996732LL; unsigned int a112 = 4012608111U; unsigned int a113 = 664122423U; unsigned int a55 = 795984700U; unsigned int v38 = 751359462U; unsigned int *p8 = &(v38); unsigned int v64 = 274677517U; unsigned long long int v36 = 14738459288714673932ULL; unsigned int *p9 = &(v64); unsigned int *p10 = &(a113); unsigned long long int * p6 = &(v36); long long int tt; unsigned int yy; long long int *p11 = &tt; unsigned int *p12 = &yy; unsigned long long int v12 = 5759377091529791657ULL; unsigned long long int v146 = 15085582420970487994ULL; unsigned long long int v176 = 13537462614340337437ULL; unsigned int v114 = 3159284560U; long long int v84 = -5592336281551563373LL; unsigned int v44 = 916868838U; unsigned long long int tf_0_var_108 = 122846687590239390ULL; unsigned long long int tf_0_var_118 = 15084731736992858763ULL; unsigned int tf_0_var_546 = 1383085329U; long long int tf_0_var_142 = 676559977929482050LL; unsigned int tf_0_var_614 = 1321771489U; unsigned int tf_0_var_116 = 2438389883U; long long int tf_0_var_682 = 2997174617692616057LL; unsigned long long int tf_0_var_728 = 4431338120255382076ULL; unsigned long long int tf_0_var_120 = 11272010769831539270ULL; unsigned int tf_0_var_954 = 2906827848U; void foo() { if (-2783342978U * int(a43) || v64) if (p9) if (m33) if (v36) if (v12 & ~-(8 ? -2783342978U * int(a43) : 0)) { m46 = a16 < a103; tf_0_var_118 = a23 >> *p8 - 751359400; *p10 = v146; long a = (a23 >> *p8 - 751359400 >> ~-(8 ? -2783342978U * int(a43) : 0) - 88480234) - (808 ? 8 ? -2783342978U * int(a43) : 0 : 0) ? v176 : ~-(8 ? -2783342978U * int(a43) : 0) - 88480234; tf_0_var_108 = a; if (~0 % *p6 % 5) tf_0_var_546 = -3 * ((8 ? a43 : 0) - 4 ?: 407228174574); if (v114 < (0 || ~0)) { long long *b = &tf_0_var_142; p10 = 0; int c(*p9); *p11 = 0; tf_0_var_614 = ~(808 ? -(8 ? unsigned(-2783342978U * a43) : 0) : 0); a120 = *b & m30; tf_0_var_116 = c; } else { m30 = 0; int d, e(!0 % (a31 % *p6)); a50 = ((a92 || !m21) && a20) - -(8 ? -2783342978U * int(a43) : d); tf_0_var_682 = a23 >> *p8 - 751359400; tf_0_var_142 = v12; long f(a23 >> *p8 - 751359400 >> ~-(8 ? -2783342978U * int(a43) : 0) - 88480234); tf_0_var_728 = v36; a112 = a103 * f * e * v84; } if (8ULL * -(808 ? -(8 ? -2783342978U * int(a43) : 0) : 0)) ; else { *p10 = 0; int g(3 & v44); tf_0_var_120 = unsigned(~a23 + 9223372036854775807 >> (8 ? a43 : 0)); *p12 = g + tf_0_var_142; a113 = m30 || ~0 + 9223372036854775807 >> ~-(8 ? -2783342978U * int(a43) : 0); tf_0_var_954 = a23 >> (8 ? 8 * a43 : 0); a55 = *p8 ? -2783342978U * a43 : 0; } } } int main() { foo(); __builtin_printf ("%d\n", a50); return 0; } does reproduce it too, better test that.