File tree 11 files changed +185
-0
lines changed
pointer-function-parameters-struct-mutual-recursion
pointer-function-parameters-struct-non-recursive
pointer-function-parameters-struct-simple-recursion
pointer-function-parameters-struct-simple-recursion-2
pointer-function-parameters-struct-simple-recursion-3
11 files changed +185
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include <assert.h>
2
+ #include <stdlib.h>
3
+
4
+ typedef struct st1
5
+ {
6
+ struct st2 * to_st2 ;
7
+ int data ;
8
+ } st1_t ;
9
+
10
+ typedef struct st2
11
+ {
12
+ struct st1 * to_st1 ;
13
+ int data ;
14
+ } st2_t ;
15
+
16
+ st1_t dummy1 ;
17
+ st2_t dummy2 ;
18
+
19
+ void func (st1_t * p )
20
+ {
21
+ assert (p != NULL );
22
+ assert (p -> to_st2 != NULL );
23
+ assert (p -> to_st2 -> to_st1 != NULL );
24
+ assert (p -> to_st2 -> to_st1 -> to_st2 == NULL );
25
+
26
+ assert (p != & dummy1 );
27
+ assert (p -> to_st2 != & dummy2 );
28
+ assert (p -> to_st2 -> to_st1 != & dummy1 );
29
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --function func --min-null-tree-depth 10 --max-nondet-tree-depth 3 --pointer-check
4
+ ^EXIT=0$
5
+ ^SIGNAL=0$
6
+ VERIFICATION SUCCESSFUL
7
+ --
8
+ ^warning: ignoring
Original file line number Diff line number Diff line change
1
+ #include <assert.h>
2
+ #include <stdlib.h>
3
+
4
+ typedef struct st
5
+ {
6
+ int data ;
7
+ } st_t ;
8
+
9
+ st_t dummy ;
10
+
11
+ void func (st_t * p )
12
+ {
13
+ assert (p != NULL );
14
+ assert (p != & dummy );
15
+ assert (p -> data >= 4854549 );
16
+ assert (p -> data < 4854549 );
17
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --function func --min-null-tree-depth 10
4
+ ^EXIT=10$
5
+ ^SIGNAL=0$
6
+ \[func.assertion.1\] line [0-9]+ assertion p != .*((NULL)|0).*: SUCCESS
7
+ \[func.assertion.2\] line [0-9]+ assertion p != &dummy: SUCCESS
8
+ \[func.assertion.3\] line [0-9]+ assertion p->data >= 4854549: FAILURE
9
+ \[func.assertion.4\] line [0-9]+ assertion p->data < 4854549: FAILURE
10
+ --
11
+ ^warning: ignoring
Original file line number Diff line number Diff line change
1
+ #include <assert.h>
2
+ #include <stdlib.h>
3
+
4
+ typedef struct st
5
+ {
6
+ struct st * next ;
7
+ struct st * prev ;
8
+ int data ;
9
+ } st_t ;
10
+
11
+ st_t dummy ;
12
+
13
+ void func (st_t * p )
14
+ {
15
+ assert (p != NULL );
16
+ assert (p != & dummy );
17
+
18
+ assert (p -> prev != NULL );
19
+ assert (p -> prev != & dummy );
20
+
21
+ assert (p -> next != NULL );
22
+ assert (p -> next != & dummy );
23
+
24
+ assert (p -> prev -> prev == NULL );
25
+ assert (p -> prev -> next == NULL );
26
+ assert (p -> next -> prev == NULL );
27
+ assert (p -> next -> next == NULL );
28
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --function func --min-null-tree-depth 10 --max-nondet-tree-depth 2 --pointer-check
4
+ ^EXIT=0$
5
+ ^SIGNAL=0$
6
+ VERIFICATION SUCCESSFUL
7
+ --
8
+ ^warning: ignoring
Original file line number Diff line number Diff line change
1
+ #include <assert.h>
2
+ #include <stdlib.h>
3
+
4
+ typedef struct st
5
+ {
6
+ struct st * next ;
7
+ int data ;
8
+ } st_t ;
9
+
10
+ st_t dummy ;
11
+
12
+ void func (st_t * p )
13
+ {
14
+ if (p != NULL )
15
+ {
16
+ if (p -> next != NULL )
17
+ {
18
+ if (p -> next -> next != NULL )
19
+ {
20
+ // covered
21
+ }
22
+ else
23
+ {
24
+ // covered
25
+ }
26
+ }
27
+ else
28
+ {
29
+ // not covered
30
+ }
31
+ }
32
+ else
33
+ {
34
+ // not covered
35
+ }
36
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --function func --min-null-tree-depth 2 --max-nondet-tree-depth 10 --cover branch
4
+ ^EXIT=0$
5
+ ^SIGNAL=0$
6
+ \[func.coverage.2\] file main.c line .* function func block 1 branch false: SATISFIED
7
+ \[func.coverage.3\] file main.c line .* function func block 1 branch true: FAILED
8
+ \[func.coverage.4\] file main.c line .* function func block 2 branch false: SATISFIED
9
+ \[func.coverage.5\] file main.c line .* function func block 2 branch true: FAILED
10
+ \[func.coverage.6\] file main.c line .* function func block 3 branch false: SATISFIED
11
+ \[func.coverage.7\] file main.c line .* function func block 3 branch true: SATISFIED
12
+ --
13
+ ^warning: ignoring
Original file line number Diff line number Diff line change
1
+ #include <assert.h>
2
+ #include <stdlib.h>
3
+
4
+ typedef struct st
5
+ {
6
+ struct st * next ;
7
+ int data ;
8
+ } st_t ;
9
+
10
+ st_t dummy ;
11
+
12
+ void func (st_t * p )
13
+ {
14
+ assert (p != NULL );
15
+ assert (p -> next != NULL );
16
+ assert (p -> next -> next != NULL );
17
+ assert (p -> next -> next -> next == NULL );
18
+
19
+ assert (p != & dummy );
20
+ assert (p -> next != & dummy );
21
+ assert (p -> next -> next != & dummy );
22
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --function func --min-null-tree-depth 10 --max-nondet-tree-depth 3 --pointer-check
4
+ ^EXIT=0$
5
+ ^SIGNAL=0$
6
+ VERIFICATION SUCCESSFUL
7
+ --
8
+ ^warning: ignoring
Original file line number Diff line number Diff line change @@ -156,6 +156,11 @@ rm no_nondet_static/test.desc
156
156
rm null1/test.desc
157
157
rm pointer-function-parameters/test.desc
158
158
rm pointer-function-parameters-2/test.desc
159
+ rm pointer-function-parameters-struct-mutual-recursion/test.desc
160
+ rm pointer-function-parameters-struct-non-recursive/test.desc
161
+ rm pointer-function-parameters-struct-simple-recursion/test.desc
162
+ rm pointer-function-parameters-struct-simple-recursion-2/test.desc
163
+ rm pointer-function-parameters-struct-simple-recursion-3/test.desc
159
164
rm scanf1/test.desc
160
165
rm simple_assert/test.desc
161
166
rm stack-trace/test.desc
You can’t perform that action at this time.
0 commit comments