blob: 6b391b7a743d94f1c3f7eeab33b4826d58fe2dd3 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O3" } */
/* { dg-require-effective-target indirect_jumps } */
#include <setjmp.h>
#include <stdlib.h>
void * my_malloc (size_t size);
typedef struct glk {
struct glk *nxt;
} glk;
typedef struct Lock
{
glk ByteLock;
} Lock;
static Lock *l, *lk;
void bytelocks(glk *rethead, jmp_buf jb)
{
glk *cur, *cur_lk;
if (( setjmp (jb)) == 0)
for (cur = &l->ByteLock; cur != ((glk *)0) ; cur = (cur)->nxt)
for (cur_lk = &lk->ByteLock; cur_lk != ((glk *)0); cur_lk = cur_lk->nxt)
{
glk *retrng;
if(!rethead)
rethead = (glk *) my_malloc (sizeof(glk));
retrng = (glk *) my_malloc (sizeof(glk));
retrng->nxt = rethead;
}
return;
}