diff options
author | Andreas Schwab <schwab@issan.cs.uni-dortmund.de> | 1999-05-17 01:47:29 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-05-16 19:47:29 -0600 |
commit | 2e5b444824b88b5c6bd039237f7fe447937b5db1 (patch) | |
tree | c956fef2c360c93a4686c747ce060be96f29d4f0 /gcc | |
parent | 71a874cd5e9e451f1703393e8d7216f488f4e95b (diff) | |
download | gcc-2e5b444824b88b5c6bd039237f7fe447937b5db1.zip gcc-2e5b444824b88b5c6bd039237f7fe447937b5db1.tar.gz gcc-2e5b444824b88b5c6bd039237f7fe447937b5db1.tar.bz2 |
* gcc.c-torture/compile/990517-1.c: New test.
From-SVN: r26963
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/990517-1.c | 30 |
2 files changed, 33 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ff2e800..e87f184 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,8 @@ 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. (main): Call them. diff --git a/gcc/testsuite/gcc.c-torture/compile/990517-1.c b/gcc/testsuite/gcc.c-torture/compile/990517-1.c new file mode 100644 index 0000000..c738d4b --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/990517-1.c @@ -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; + } +} |