1 #include "check_debug.h"
2
3 void frob(void){}
4
5 int x[10];
6 int offset;
7 void func(int *y)
8 {
9 if (({int test2 = !!(!y || !*y); frob(); frob(); frob(); test2;}))
10 __smatch_value("y");
11 else
12 __smatch_value("y");
13
14 if (({int test2 = !!(offset >= 10 || x[offset] == 1); frob(); frob(); frob(); test2;}))
15 __smatch_value("offset");
16 else
17 __smatch_value("offset");
18
19 }
20 /*
21 * check-name: smatch implied #10
22 * check-command: smatch -I.. -m64 sm_implied10.c
23 *
24 * check-output-start
25 sm_implied10.c:10 func() y = 0,4096-2117777777777777777
26 sm_implied10.c:12 func() y = 4096-2117777777777777777
27 sm_implied10.c:15 func() offset = 0-s32max
28 sm_implied10.c:17 func() offset = 0-9
29 * check-output-end
30 */
|
1 #include "check_debug.h"
2
3 void frob(void){}
4
5 int x[10];
6 int offset;
7 void func(int *y)
8 {
9 if (({int test2 = !!(!y || !*y); frob(); frob(); frob(); test2;}))
10 __smatch_value("y");
11 else
12 __smatch_value("y");
13
14 if (({int test2 = !!(offset >= 10u || x[offset] == 1); frob(); frob(); frob(); test2;}))
15 __smatch_value("offset");
16 else
17 __smatch_value("offset");
18
19 }
20 /*
21 * check-name: smatch implied #10
22 * check-command: smatch -I.. -m64 sm_implied10.c
23 *
24 * check-output-start
25 sm_implied10.c:10 func() y = 0,4096-ptr_max
26 sm_implied10.c:12 func() y = 4096-ptr_max
27 sm_implied10.c:15 func() offset = s32min-s32max
28 sm_implied10.c:17 func() offset = 0-9
29 * check-output-end
30 */
|