diff options
author | Jeff Law <law@gcc.gnu.org> | 1997-11-05 01:37:43 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-11-05 01:37:43 -0700 |
commit | 5b8f8eeb20f2f5582b9393f36a9b0e148f264316 (patch) | |
tree | f470c435baba7bad082a5b350b06d86787dbd8b8 /gcc | |
parent | f4e31cf56fd572d0c5d4d34746d8d9f1d3ea44d5 (diff) | |
download | gcc-5b8f8eeb20f2f5582b9393f36a9b0e148f264316.zip gcc-5b8f8eeb20f2f5582b9393f36a9b0e148f264316.tar.gz gcc-5b8f8eeb20f2f5582b9393f36a9b0e148f264316.tar.bz2 |
New test.
From-SVN: r16340
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/971104-1.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/971104-1.c b/gcc/testsuite/gcc.c-torture/compile/971104-1.c new file mode 100644 index 0000000..3f0996d --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/971104-1.c @@ -0,0 +1,26 @@ +typedef unsigned short ushort; +struct sembuf { + ushort sem_num; + short sem_op; + short sem_flg; +}; +union semun { + int val; + struct semid_ds *buf; + ushort *array; + struct seminfo *__buf; + void *__pad; +}; +static union semun semctl_arg; +static int semid; +static void up(int sem){ + struct sembuf sb; + sb.sem_num = (unsigned short) sem; + sb.sem_op = 1; + sb.sem_flg = 0x1000 ; + if(semop(semid, &sb, 1) == -1) error("up failure"); + if(semctl(semid, sb.sem_num, 12 , semctl_arg) == 0) + printf("%s had processes sleeping on it!\n", + ({ "MUTEX ", "BARB_SEM 1", "BARB_SEM 2", "CUST_SEM 1", "CUST_SEM 2", "WA +IT_SEM 1", "WAIT_SEM 2", "WAIT_SEM 3", "WAIT_SEM 4"} [( sb.sem_num )]) ); +} |