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