a676f66a8ba13434106c043452c9400e6baa9dac
[libguestfs-talks.git] / 2020-frama-c / 4870-range-init-spec.html
1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
2 <link rel="stylesheet" href="style.css" type="text/css"/>
3 <script src="code.js" type="text/javascript"></script>
4
5 <h1>qemu range_init_nofail() spec</h1>
6
7 <pre class="code">
8   /*@
9     requires \valid(range);
10     requires lob + (integer)size <= UINT64_MAX;
11     assigns *range;
12     behavior empty:
13       assumes lob > 0 && size == 0;
14       ensures empty_range(*range);
15     behavior non_empty:
16       assumes size > 0;
17       ensures range->lob == lob;
18       ensures size_of_bounds(lob, range->upb) == size;
19     behavior total:
20       assumes lob == 0 && size == 0;
21       ensures total_range(*range);
22     complete behaviors;
23     disjoint behaviors;
24    */
25 </pre>