extra: fix bug handling untracked pointers
[smatch.git] / validation / sm_select3.c
blobbb2ad0c1ead8a5bbadf722cd7aca77ed247cd567
1 #include "check_debug.h"
3 int a, b, c;
4 int func(void)
6 if (a ? b : c)
7 __smatch_value("a");
9 __smatch_note("Test #1 a ? 1 : c");
10 if (a ? 1 : c) {
11 __smatch_value("a");
12 __smatch_value("c");
13 if (!a)
14 __smatch_value("c");
15 if (!c)
16 __smatch_value("a");
17 } else {
18 __smatch_value("a");
19 __smatch_value("c");
22 __smatch_note("Test #2 a ? 0 : c");
23 if (a ? 0 : c) {
24 __smatch_value("a");
25 __smatch_value("c");
26 if (!a)
27 __smatch_value("c");
28 } else {
29 __smatch_value("a");
30 __smatch_value("c");
31 if (!a)
32 __smatch_value("c");
33 if (!c)
34 __smatch_value("a");
37 __smatch_note("Test #3 a ? b : 1");
38 if (a ? b : 1) {
39 __smatch_value("a");
40 __smatch_value("b");
41 if (!a)
42 __smatch_value("b");
43 if (!b)
44 __smatch_value("a");
45 } else {
46 __smatch_value("a");
47 __smatch_value("b");
48 if (!b)
49 __smatch_value("a");
52 __smatch_note("Test #2 a ? b : 0");
53 if (a ? b : 0) {
54 __smatch_value("a");
55 __smatch_value("b");
56 } else {
57 __smatch_value("a");
58 __smatch_value("b");
59 if (a)
60 __smatch_value("b");
61 if (b)
62 __smatch_value("a");
68 * check-name: Ternary Conditions #3
69 * check-command: smatch -I.. sm_select3.c
71 * check-output-start
72 sm_select3.c:7 func() a = s32min-s32max
73 sm_select3.c:9 func() Test #1 a ? 1 : c
74 sm_select3.c:11 func() a = s32min-s32max
75 sm_select3.c:12 func() c = s32min-s32max
76 sm_select3.c:14 func() c = s32min-(-1),1-s32max
77 sm_select3.c:16 func() a = s32min-(-1),1-s32max
78 sm_select3.c:18 func() a = 0
79 sm_select3.c:19 func() c = 0
80 sm_select3.c:22 func() Test #2 a ? 0 : c
81 sm_select3.c:24 func() a = 0
82 sm_select3.c:25 func() c = s32min-(-1),1-s32max
83 sm_select3.c:27 func() c = s32min-(-1),1-s32max
84 sm_select3.c:29 func() a = s32min-s32max
85 sm_select3.c:30 func() c = s32min-s32max
86 sm_select3.c:32 func() c = 0
87 sm_select3.c:34 func() a = s32min-s32max
88 sm_select3.c:37 func() Test #3 a ? b : 1
89 sm_select3.c:39 func() a = s32min-s32max
90 sm_select3.c:40 func() b = s32min-s32max
91 sm_select3.c:42 func() b = s32min-s32max
92 sm_select3.c:44 func() a = 0
93 sm_select3.c:46 func() a = s32min-(-1),1-s32max
94 sm_select3.c:47 func() b = 0
95 sm_select3.c:49 func() a = s32min-(-1),1-s32max
96 sm_select3.c:52 func() Test #2 a ? b : 0
97 sm_select3.c:54 func() a = s32min-(-1),1-s32max
98 sm_select3.c:55 func() b = s32min-(-1),1-s32max
99 sm_select3.c:57 func() a = s32min-s32max
100 sm_select3.c:58 func() b = s32min-s32max
101 sm_select3.c:60 func() b = 0
102 sm_select3.c:62 func() a = 0
103 * check-output-end