Frama-C-discuss mailing list archives

This page gathers the archives of the old Frama-C-discuss archives, that was hosted by Inria's gforge before its demise at the end of 2020. To search for mails newer than September 2020, please visit the page of the new mailing list on Renater.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Frama-c-discuss] YASE, back to the roots

  • Subject: [Frama-c-discuss] YASE, back to the roots
  • From: Christoph.Weber at (Christoph Weber)
  • Date: Thu Oct 30 09:01:22 2008

Hello again,

Thank You and granulations for the latest release.

But I have some problems to get started. Lets start with an example.
Following Function in separate files:


requires valid_range(first, last);
requires \valid_range(first, 0, last-first -1);
behavior is_not_empty:
assumes not_empty_range(first, last);
ensures \forall integer i;
0 <= i < last-first ==> first[i] == value;
void fill (int* first, int* last, int value );


#include "fill.h"
void fill (int* first, int* last, int value )
int* it = first;
loop invariant first <= it <= last;
loop invariant \forall integer k; 0 <= k < it - first ==> first[k] == value;
while (it != last)
*it++ = value;

I call Jessie:
frama-c -jessie-analysis -jessie-int-model exact -jessie-no-regions -jessie-gui fill.c

Now the problems:
-the loop invariant cannot be preserved, => am I missing an option or an annotation (it went fine on H and He)
-the declared int* it causes problems in pointer dereferencing
-Z3, CVC3, and Yices get stuck and wont abort, the timeout never worked on any release yet (on my pc)

I hope for help

-------------- next part --------------
An HTML attachment was scrubbed...