]> andersk Git - splint.git/blame - test/db1/employee.lcl
noexpand always false.
[splint.git] / test / db1 / employee.lcl
CommitLineData
885824d3 1imports bool;
2
3constant int maxEmployeeName;
4constant int employeePrintSize;
5
6typedef enum { MALE, FEMALE, gender_ANY } gender;
7typedef enum { MGR, NONMGR, job_ANY } job;
8
9typedef struct
10{
11 int ssNum;
12 char name[maxEmployeeName];
13 int salary;
14 gender gen;
15 job j;
16} employee;
17
18void employee_sprint (out char s[], employee e)
19{
20 /* requires maxIndex(s) >= employeePrintSize; */
21 modifies s;
22 /* ensures isSprint(s', e)
23 /\ lenStr(s') = employeePrintSize;
24 */
25}
26
27bool employee_equal (employee *e1, employee *e2)
28{
29 /* ensures result = sameStr(e1->name^, e2->name^)
30 /\ (e1->ssNum^ = e2->ssNum^)
31 /\ (e1->salary^ = e2->salary^)
32 /\ (e1->gen^ = e2->gen^)
33 /\ (e1->j^ = e2->j^);
34 */
35}
36
37bool employee_setName(employee *e, char na[])
38{
39 /* requires nullTerminated(na^); */
40 modifies e->name;
41 /* ensures result = lenStr(na^) < maxEmployeeName
42 /\ (if result
43 then sameStr(e->name', na^)
44 /\ nullTerminated(e->name')
45 else e->name' = e->name^);
46 */
47}
48
49void employee_initMod(void)
50{
51 ensures true;
52}
53
This page took 0.066505 seconds and 5 git commands to generate.