modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/divconst-2.c (about) 1 long 2 f (long x) 3 { 4 return x / (-0x7fffffffL - 1L); 5 } 6 7 long 8 r (long x) 9 { 10 return x % (-0x7fffffffL - 1L); 11 } 12 13 /* Since we have a negative divisor, this equation must hold for the 14 results of / and %; no specific results are guaranteed. */ 15 long 16 std_eqn (long num, long denom, long quot, long rem) 17 { 18 /* For completeness, a check for "ABS (rem) < ABS (denom)" belongs here, 19 but causes trouble on 32-bit machines and isn't worthwhile. */ 20 return quot * (-0x7fffffffL - 1L) + rem == num; 21 } 22 23 long nums[] = 24 { 25 -1L, 0x7fffffffL, -0x7fffffffL - 1L 26 }; 27 28 main () 29 { 30 int i; 31 32 for (i = 0; 33 i < sizeof (nums) / sizeof (nums[0]); 34 i++) 35 if (std_eqn (nums[i], -0x7fffffffL - 1L, f (nums[i]), r (nums[i])) == 0) 36 abort (); 37 38 exit (0); 39 }