modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/990517-1.c (about) 1 /* Extracted from the sdm module in perl. */ 2 typedef struct { 3 char *dptr; 4 int dsize; 5 } datum; 6 extern long sdbm_hash (char *, int) ; 7 extern void sdbm__putpair (char *, datum, datum) ; 8 void 9 sdbm__splpage (char *pag, char *New, long int sbit) 10 { 11 datum key; 12 datum val; 13 register int n; 14 register int off = 1024 ; 15 char cur[1024 ]; 16 register short *ino = (short *) cur; 17 (void) memcpy(cur, pag, 1024 ); 18 (void) ({ void *__s = ( pag ); __builtin_memset ( __s , '\0', 1024 ) ; __s; }); 19 (void) ({ void *__s = ( New ); __builtin_memset ( __s , '\0', 1024 ) ; __s; }); 20 n = ino[0]; 21 for (ino++; n > 0; ino += 2) { 22 key.dptr = cur + ino[0]; 23 key.dsize = off - ino[0]; 24 val.dptr = cur + ino[1]; 25 val.dsize = ino[0] - ino[1]; 26 (void) sdbm__putpair ((sdbm_hash(( key ).dptr, ( key ).dsize) & sbit) ? New : pag, key, val); 27 off = ino[1]; 28 n -= 2; 29 } 30 }