1struct node {
2  struct node *next;
3  int value;
4};
5
6struct node *current_node, global_list;
7
8void
9bar (void)
10{
11  struct node *node, *next;
12
13  node = current_node;
14  next = node->next;
15  if (node != &global_list)
16    current_node = next;
17  else
18    {
19      node = global_list.next;
20      global_list.value = node->value;
21      global_list.next = node->next;
22    }
23  foo (node);
24}
25