struct node {
  struct node *next;
  int value;
};

struct node *current_node, global_list;

void
bar (void)
{
  struct node *node, *next;

  node = current_node;
  next = node->next;
  if (node != &global_list)
    current_node = next;
  else
    {
      node = global_list.next;
      global_list.value = node->value;
      global_list.next = node->next;
    }
  foo (node);
}
