* gcc.c-torture/compile/990517-1.c: New test.
From-SVN: r26963
This commit is contained in:
parent
71a874cd5e
commit
2e5b444824
|
@ -1,6 +1,8 @@
|
||||||
1999-05-17 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
1999-05-17 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||||
|
|
||||||
* execute/990326-1.c: Force bitfields to be aligned.
|
* gcc.c-torture/compile/990517-1.c: New test.
|
||||||
|
|
||||||
|
* gcc.c-torture/execute/990326-1.c: Force bitfields to be aligned.
|
||||||
(e4, f4): New tests.
|
(e4, f4): New tests.
|
||||||
(main): Call them.
|
(main): Call them.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
/* Extracted from the sdm module in perl. */
|
||||||
|
typedef struct {
|
||||||
|
char *dptr;
|
||||||
|
int dsize;
|
||||||
|
} datum;
|
||||||
|
extern long sdbm_hash (char *, int) ;
|
||||||
|
extern void sdbm__putpair (char *, datum, datum) ;
|
||||||
|
void
|
||||||
|
sdbm__splpage (char *pag, char *New, long int sbit)
|
||||||
|
{
|
||||||
|
datum key;
|
||||||
|
datum val;
|
||||||
|
register int n;
|
||||||
|
register int off = 1024 ;
|
||||||
|
char cur[1024 ];
|
||||||
|
register short *ino = (short *) cur;
|
||||||
|
(void) memcpy(cur, pag, 1024 );
|
||||||
|
(void) ({ void *__s = ( pag ); __builtin_memset ( __s , '\0', 1024 ) ; __s; });
|
||||||
|
(void) ({ void *__s = ( New ); __builtin_memset ( __s , '\0', 1024 ) ; __s; });
|
||||||
|
n = ino[0];
|
||||||
|
for (ino++; n > 0; ino += 2) {
|
||||||
|
key.dptr = cur + ino[0];
|
||||||
|
key.dsize = off - ino[0];
|
||||||
|
val.dptr = cur + ino[1];
|
||||||
|
val.dsize = ino[0] - ino[1];
|
||||||
|
(void) sdbm__putpair ((sdbm_hash(( key ).dptr, ( key ).dsize) & sbit) ? New : pag, key, val);
|
||||||
|
off = ino[1];
|
||||||
|
n -= 2;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue