/* Generated by Frama-C */
struct message {
   struct message *next ;
   char *buffer ;
};
struct message_box {
   int length ;
   struct message *first ;
};
void zeros_buffer(struct message_box *box)
{
  struct message *first = box->first;
  struct message *current = first;
  int length = box->length;
  while (1) {
    {
      int i = 0;
      while (i < length) {
        *(current->buffer + i) = (char)0;
        i ++;
      }
    }
    current = current->next;
    if (! (current != first)) break;
  }
  return;
}


Unproved alarms:
example.c:12: Memory_access(box->first, read) {true;false}
example.c:19: Memory_access(current->buffer, read) {true;false}
example.c:19: Memory_access(*(current->buffer + i), write) {true;false}
example.c:21: Memory_access(current->next, read) {true;false}
Proved 1/5 alarms

/ Name Type Value