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  }