]> andersk Git - splint.git/blame - test/linked4.c
noexpand always false.
[splint.git] / test / linked4.c
CommitLineData
80ee600a 1typedef struct _node *node;
2
3typedef struct {
4 char *val;
5} *item;
6
7struct _node {
8 /*@only@*/ item val;
9 /*@null@*/ node next;
10}
11
12void node_free1 (/*@only@*/ node n)
13{
14 free (n); /* 2 errors: must free n->next, n->val */
15}
16
17void node_free2 (/*@only@*/ node n)
18{
19 node nn = n->next;
20 free (n); /* error: must free n->val */
21} /* error - nn not released */
22
23void node_free3 (/*@only@*/ node n)
24{
25 node nn = n->next;
26 free (n->val);
27 free (n); /* okay */
28 if (nn != NULL) {
29 node_free1 (nn); /* okay (error for null) */
30 }
31} /* okay */
32
This page took 0.131196 seconds and 5 git commands to generate.