param_cleared: handle direct assignments
[smatch.git] / validation / sm_implied8.c
blobff7614696ca790868969bdfecfd2af93285c9a76
1 #include "check_debug.h"
3 void frob();
5 int x;
6 void func (void)
8 int test, test2;
10 if (({int test = !!x; frob(); frob(); frob(); test;}))
11 __smatch_value("x");
12 else
13 __smatch_value("x");
14 if (test)
15 __smatch_value("x");
16 if (({test2 = !(x == 3); frob(); frob(); frob(); test2;}))
17 __smatch_value("x");
18 else
19 __smatch_value("x");
20 test = !!(x == 10);
21 if (!test)
22 __smatch_value("x");
23 __smatch_value("x");
26 * check-name: smatch implied #8
27 * check-command: smatch -I.. sm_implied8.c
29 * check-output-start
30 sm_implied8.c:11 func() x = s32min-(-1),1-s32max
31 sm_implied8.c:13 func() x = 0
32 sm_implied8.c:15 func() x = s32min-s32max
33 sm_implied8.c:17 func() x = s32min-2,4-s32max
34 sm_implied8.c:19 func() x = 3
35 sm_implied8.c:22 func() x = s32min-9,11-s32max
36 sm_implied8.c:23 func() x = s32min-s32max
37 * check-output-end