1  struct node {
       2    struct node *next;
       3    int value;
       4  };
       5  
       6  struct node *current_node, global_list;
       7  
       8  void
       9  bar (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  }