modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/pr60655-2.c (about) 1 2 typedef unsigned char unit; 3 typedef unit *unitptr; 4 extern short global_precision; 5 typedef __SIZE_TYPE__ size_t; 6 extern void *memcpy (void *dest, const void *src, size_t n); 7 8 short mp_compare(const unit* r1, const unit* r2) 9 { 10 register short precision; 11 precision = global_precision; 12 (r1) = ((r1)+(precision)-1); 13 (r2) = ((r2)+(precision)-1); 14 do 15 { if (*r1 < *r2) 16 return(-1); 17 if (*((r1)--) > *((r2)--)) 18 return(1); 19 } while (--precision); 20 } 21 22 static unit modulus[((1280+(2*8))/8)]; 23 static unit d_data[((1280+(2*8))/8)*2]; 24 25 int upton_modmult (unitptr prod, unitptr multiplicand, unitptr multiplier) 26 { 27 unitptr d = d_data; 28 while (mp_compare(d,modulus) > 0) 29 memcpy((void*)(prod), (const void*)(d), (global_precision)); 30 }