@@ -10,32 +10,32 @@ namespace Models {
10
10
// No model as destructors are excluded from model generation.
11
11
~BasicFlow () = default ;
12
12
13
- // summary=Models;BasicFlow;true;returnThis;(int *);;Argument[-1];ReturnValue[*];taint;df-generated
13
+ // heuristic- summary=Models;BasicFlow;true;returnThis;(int *);;Argument[-1];ReturnValue[*];taint;df-generated
14
14
// contentbased-summary=Models;BasicFlow;true;returnThis;(int *);;Argument[-1];ReturnValue[*];value;dfc-generated
15
15
BasicFlow* returnThis (int * input) {
16
16
return this ;
17
17
}
18
18
19
- // summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[0];ReturnValue;taint;df-generated
20
- // summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[*0];ReturnValue[*];taint;df-generated
19
+ // heuristic- summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[0];ReturnValue;taint;df-generated
20
+ // heuristic- summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[*0];ReturnValue[*];taint;df-generated
21
21
// contentbased-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[0];ReturnValue;value;dfc-generated
22
22
// contentbased-summary=Models;BasicFlow;true;returnParam0;(int *,int *);;Argument[*0];ReturnValue[*];value;dfc-generated
23
23
int * returnParam0 (int * input0, int * input1) {
24
24
return input0;
25
25
}
26
26
27
- // summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[1];ReturnValue;taint;df-generated
28
- // summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[*1];ReturnValue[*];taint;df-generated
27
+ // heuristic- summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[1];ReturnValue;taint;df-generated
28
+ // heuristic- summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[*1];ReturnValue[*];taint;df-generated
29
29
// contentbased-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[1];ReturnValue;value;dfc-generated
30
30
// contentbased-summary=Models;BasicFlow;true;returnParam1;(int *,int *);;Argument[*1];ReturnValue[*];value;dfc-generated
31
31
int * returnParam1 (int * input0, int * input1) {
32
32
return input1;
33
33
}
34
34
35
- // summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[1];ReturnValue;taint;df-generated
36
- // summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*1];ReturnValue[*];taint;df-generated
37
- // summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[2];ReturnValue;taint;df-generated
38
- // summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*2];ReturnValue[*];taint;df-generated
35
+ // heuristic- summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[1];ReturnValue;taint;df-generated
36
+ // heuristic- summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*1];ReturnValue[*];taint;df-generated
37
+ // heuristic- summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[2];ReturnValue;taint;df-generated
38
+ // heuristic- summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*2];ReturnValue[*];taint;df-generated
39
39
// contentbased-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[1];ReturnValue;value;dfc-generated
40
40
// contentbased-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[*1];ReturnValue[*];value;dfc-generated
41
41
// contentbased-summary=Models;BasicFlow;true;returnParamMultiple;(bool,int *,int *);;Argument[2];ReturnValue;value;dfc-generated
@@ -44,11 +44,11 @@ namespace Models {
44
44
return b ? input0 : input1;
45
45
}
46
46
47
- // summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];Argument[*1];taint;df-generated
48
- // summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];ReturnValue[*];taint;df-generated
49
- // summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];ReturnValue[*];taint;df-generated
50
- // summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[1];ReturnValue;taint;df-generated
51
- // summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];Argument[*1];taint;df-generated
47
+ // heuristic- summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];Argument[*1];taint;df-generated
48
+ // heuristic- summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];ReturnValue[*];taint;df-generated
49
+ // heuristic- summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];ReturnValue[*];taint;df-generated
50
+ // heuristic- summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[1];ReturnValue;taint;df-generated
51
+ // heuristic- summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];Argument[*1];taint;df-generated
52
52
// contentbased-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];Argument[*1];taint;dfc-generated
53
53
// contentbased-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[0];ReturnValue[*];taint;dfc-generated
54
54
// contentbased-summary=Models;BasicFlow;true;returnSubstring;(const char *,char *);;Argument[*0];ReturnValue[*];value;dfc-generated
@@ -58,16 +58,16 @@ namespace Models {
58
58
return strcpy (dest, source + 1 );
59
59
}
60
60
61
- // summary=Models;BasicFlow;true;setField;(int *);;Argument[0];Argument[-1];taint;df-generated
62
- // summary=Models;BasicFlow;true;setField;(int *);;Argument[*0];Argument[-1];taint;df-generated
61
+ // heuristic- summary=Models;BasicFlow;true;setField;(int *);;Argument[0];Argument[-1];taint;df-generated
62
+ // heuristic- summary=Models;BasicFlow;true;setField;(int *);;Argument[*0];Argument[-1];taint;df-generated
63
63
// contentbased-summary=Models;BasicFlow;true;setField;(int *);;Argument[0];Argument[-1].Field[*tainted];value;dfc-generated
64
64
// contentbased-summary=Models;BasicFlow;true;setField;(int *);;Argument[*0];Argument[-1].Field[**tainted];value;dfc-generated
65
65
void setField (int * s) {
66
66
tainted = s;
67
67
}
68
68
69
- // summary=Models;BasicFlow;true;returnField;();;Argument[-1];ReturnValue;taint;df-generated
70
- // summary=Models;BasicFlow;true;returnField;();;Argument[-1];ReturnValue[*];taint;df-generated
69
+ // heuristic- summary=Models;BasicFlow;true;returnField;();;Argument[-1];ReturnValue;taint;df-generated
70
+ // heuristic- summary=Models;BasicFlow;true;returnField;();;Argument[-1];ReturnValue[*];taint;df-generated
71
71
// contentbased-summary=Models;BasicFlow;true;returnField;();;Argument[-1].Field[*tainted];ReturnValue;value;dfc-generated
72
72
// contentbased-summary=Models;BasicFlow;true;returnField;();;Argument[-1].Field[**tainted];ReturnValue[*];value;dfc-generated
73
73
int * returnField () {
@@ -79,34 +79,34 @@ namespace Models {
79
79
struct TemplatedFlow {
80
80
T tainted;
81
81
82
- // summary=Models;TemplatedFlow<T>;true;template_returnThis;(T);;Argument[-1];ReturnValue[*];taint;df-generated
82
+ // heuristic- summary=Models;TemplatedFlow<T>;true;template_returnThis;(T);;Argument[-1];ReturnValue[*];taint;df-generated
83
83
// contentbased-summary=Models;TemplatedFlow<T>;true;template_returnThis;(T);;Argument[-1];ReturnValue[*];value;dfc-generated
84
84
TemplatedFlow<T>* template_returnThis (T input) {
85
85
return this ;
86
86
}
87
87
88
- // summary=Models;TemplatedFlow<T>;true;template_returnParam0;(T *,T *);;Argument[0];ReturnValue;taint;df-generated
89
- // summary=Models;TemplatedFlow<T>;true;template_returnParam0;(T *,T *);;Argument[*0];ReturnValue[*];taint;df-generated
88
+ // heuristic- summary=Models;TemplatedFlow<T>;true;template_returnParam0;(T *,T *);;Argument[0];ReturnValue;taint;df-generated
89
+ // heuristic- summary=Models;TemplatedFlow<T>;true;template_returnParam0;(T *,T *);;Argument[*0];ReturnValue[*];taint;df-generated
90
90
// contentbased-summary=Models;TemplatedFlow<T>;true;template_returnParam0;(T *,T *);;Argument[0];ReturnValue;value;dfc-generated
91
91
// contentbased-summary=Models;TemplatedFlow<T>;true;template_returnParam0;(T *,T *);;Argument[*0];ReturnValue[*];value;dfc-generated
92
92
T* template_returnParam0 (T* input0, T* input1) {
93
93
return input0;
94
94
}
95
95
96
- // summary=Models;TemplatedFlow<T>;true;template_setField;(T);;Argument[0];Argument[-1];taint;df-generated
96
+ // heuristic- summary=Models;TemplatedFlow<T>;true;template_setField;(T);;Argument[0];Argument[-1];taint;df-generated
97
97
// contentbased-summary=Models;TemplatedFlow<T>;true;template_setField;(T);;Argument[0];Argument[-1].Field[*tainted];value;dfc-generated
98
98
void template_setField (T s) {
99
99
tainted = s;
100
100
}
101
101
102
- // summary=Models;TemplatedFlow<T>;true;template_returnField;();;Argument[-1];ReturnValue[*];taint;df-generated
102
+ // heuristic- summary=Models;TemplatedFlow<T>;true;template_returnField;();;Argument[-1];ReturnValue[*];taint;df-generated
103
103
// contentbased-summary=Models;TemplatedFlow<T>;true;template_returnField;();;Argument[-1].Field[*tainted];ReturnValue[*];value;dfc-generated
104
104
T& template_returnField () {
105
105
return tainted;
106
106
}
107
107
108
- // summary=Models;TemplatedFlow<T>;true;templated_function<U>;(U *,T *);;Argument[0];ReturnValue;taint;df-generated
109
- // summary=Models;TemplatedFlow<T>;true;templated_function<U>;(U *,T *);;Argument[*0];ReturnValue[*];taint;df-generated
108
+ // heuristic- summary=Models;TemplatedFlow<T>;true;templated_function<U>;(U *,T *);;Argument[0];ReturnValue;taint;df-generated
109
+ // heuristic- summary=Models;TemplatedFlow<T>;true;templated_function<U>;(U *,T *);;Argument[*0];ReturnValue[*];taint;df-generated
110
110
// contentbased-summary=Models;TemplatedFlow<T>;true;templated_function<U>;(U *,T *);;Argument[0];ReturnValue;value;dfc-generated
111
111
// contentbased-summary=Models;TemplatedFlow<T>;true;templated_function<U>;(U *,T *);;Argument[*0];ReturnValue[*];value;dfc-generated
112
112
template <typename U>
@@ -129,8 +129,8 @@ namespace Models {
129
129
}
130
130
}
131
131
132
- // summary=;;true;toplevel_function;(int *);;Argument[0];ReturnValue;taint;df-generated
133
- // summary=;;true;toplevel_function;(int *);;Argument[*0];ReturnValue;taint;df-generated
132
+ // heuristic- summary=;;true;toplevel_function;(int *);;Argument[0];ReturnValue;taint;df-generated
133
+ // heuristic- summary=;;true;toplevel_function;(int *);;Argument[*0];ReturnValue;taint;df-generated
134
134
// contentbased-summary=;;true;toplevel_function;(int *);;Argument[0];ReturnValue;taint;dfc-generated
135
135
// contentbased-summary=;;true;toplevel_function;(int *);;Argument[*0];ReturnValue;value;dfc-generated
136
136
int toplevel_function (int * p) {
@@ -143,13 +143,13 @@ static int static_toplevel_function(int* p) {
143
143
}
144
144
145
145
struct NonFinalStruct {
146
- // summary=;NonFinalStruct;true;public_not_final_member_function;(int);;Argument[0];ReturnValue;taint;df-generated
146
+ // heuristic- summary=;NonFinalStruct;true;public_not_final_member_function;(int);;Argument[0];ReturnValue;taint;df-generated
147
147
// contentbased-summary=;NonFinalStruct;true;public_not_final_member_function;(int);;Argument[0];ReturnValue;value;dfc-generated
148
148
virtual int public_not_final_member_function (int x) {
149
149
return x;
150
150
}
151
151
152
- // summary=;NonFinalStruct;false;public_final_member_function;(int);;Argument[0];ReturnValue;taint;df-generated
152
+ // heuristic- summary=;NonFinalStruct;false;public_final_member_function;(int);;Argument[0];ReturnValue;taint;df-generated
153
153
// contentbased-summary=;NonFinalStruct;false;public_final_member_function;(int);;Argument[0];ReturnValue;value;dfc-generated
154
154
virtual int public_final_member_function (int x) final {
155
155
return x;
@@ -169,13 +169,13 @@ struct NonFinalStruct {
169
169
};
170
170
171
171
struct FinalStruct final {
172
- // summary=;FinalStruct;false;public_not_final_member_function_2;(int);;Argument[0];ReturnValue;taint;df-generated
172
+ // heuristic- summary=;FinalStruct;false;public_not_final_member_function_2;(int);;Argument[0];ReturnValue;taint;df-generated
173
173
// contentbased-summary=;FinalStruct;false;public_not_final_member_function_2;(int);;Argument[0];ReturnValue;value;dfc-generated
174
174
virtual int public_not_final_member_function_2 (int x) {
175
175
return x;
176
176
}
177
177
178
- // summary=;FinalStruct;false;public_final_member_function_2;(int);;Argument[0];ReturnValue;taint;df-generated
178
+ // heuristic- summary=;FinalStruct;false;public_final_member_function_2;(int);;Argument[0];ReturnValue;taint;df-generated
179
179
// contentbased-summary=;FinalStruct;false;public_final_member_function_2;(int);;Argument[0];ReturnValue;value;dfc-generated
180
180
virtual int public_final_member_function_2 (int x) final {
181
181
return x;
@@ -186,16 +186,16 @@ union U {
186
186
int x, y;
187
187
};
188
188
189
- // summary=;;true;get_x_from_union;(U *);;Argument[0];ReturnValue;taint;df-generated
190
- // summary=;;true;get_x_from_union;(U *);;Argument[*0];ReturnValue;taint;df-generated
189
+ // heuristic- summary=;;true;get_x_from_union;(U *);;Argument[0];ReturnValue;taint;df-generated
190
+ // heuristic- summary=;;true;get_x_from_union;(U *);;Argument[*0];ReturnValue;taint;df-generated
191
191
// contentbased-summary=;;true;get_x_from_union;(U *);;Argument[0];ReturnValue;taint;dfc-generated
192
192
// contentbased-summary=;;true;get_x_from_union;(U *);;Argument[*0].Union[*U];ReturnValue;value;dfc-generated
193
193
int get_x_from_union (U* u) {
194
194
return u->x ;
195
195
}
196
196
197
- // summary=;;true;set_x_in_union;(U *,int);;Argument[1];Argument[*0];taint;df-generated
197
+ // heuristic- summary=;;true;set_x_in_union;(U *,int);;Argument[1];Argument[*0];taint;df-generated
198
198
// contentbased-summary=;;true;set_x_in_union;(U *,int);;Argument[1];Argument[*0].Union[*U];value;dfc-generated
199
199
void set_x_in_union (U* u, int x) {
200
200
u->x = x;
201
- }
201
+ }
0 commit comments