Slides for 4xxx.
[libguestfs-talks.git] / 2020-frama-c / 4200-range-contains-2.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_contains()</h1>
6
7 <pre class="code">
8   <span class="comment">/*@
9     predicate value_in_range(struct Range range, uint64_t value) =
10       range.lob <= value <= range.upb;
11   */</span>
12
13   /* Does range contain val? */
14   <span class="comment">/*@
15     requires \valid_read(range);
16     requires valid_range(*range);
17     assigns \nothing;
18     ensures \result <==> value_in_range(*range, val);
19    */</span>
20   static inline bool range_contains(const Range *range, uint64_t val)
21   {
22       return val >= range->lob && val <= range->upb;
23   }
24 </pre>