]>
Commit | Line | Data |
---|---|---|
591b59eb DM |
1 | 2020-01-22 David Malcolm <dmalcolm@redhat.com> |
2 | ||
3 | PR analyzer/93382 | |
4 | * program-state.cc (sm_state_map::on_svalue_purge): If the | |
5 | entry survives, but the origin is being purged, then reset the | |
6 | origin to null. | |
7 | ||
c9c8aef4 DM |
8 | 2020-01-22 David Malcolm <dmalcolm@redhat.com> |
9 | ||
10 | * sm-signal.cc: Fix nesting of CHECKING_P and namespace ana. | |
11 | ||
fd9982bb DM |
12 | 2020-01-22 David Malcolm <dmalcolm@redhat.com> |
13 | ||
14 | PR analyzer/93378 | |
15 | * engine.cc (setjmp_svalue::compare_fields): Update for | |
16 | replacement of m_enode with m_setjmp_record. | |
17 | (setjmp_svalue::add_to_hash): Likewise. | |
18 | (setjmp_svalue::get_index): Rename... | |
19 | (setjmp_svalue::get_enode_index): ...to this. | |
20 | (setjmp_svalue::print_details): Update for replacement of m_enode | |
21 | with m_setjmp_record. | |
22 | (exploded_node::on_longjmp): Likewise. | |
23 | * exploded-graph.h (rewind_info_t::m_enode_origin): Replace... | |
24 | (rewind_info_t::m_setjmp_record): ...with this. | |
25 | (rewind_info_t::rewind_info_t): Update for replacement of m_enode | |
26 | with m_setjmp_record. | |
27 | (rewind_info_t::get_setjmp_point): Likewise. | |
28 | (rewind_info_t::get_setjmp_call): Likewise. | |
29 | * region-model.cc (region_model::dump_summary_of_map): Likewise. | |
30 | (region_model::on_setjmp): Likewise. | |
31 | * region-model.h (struct setjmp_record): New struct. | |
32 | (setjmp_svalue::m_enode): Replace... | |
33 | (setjmp_svalue::m_setjmp_record): ...with this. | |
34 | (setjmp_svalue::setjmp_svalue): Update for replacement of m_enode | |
35 | with m_setjmp_record. | |
36 | (setjmp_svalue::clone): Likewise. | |
37 | (setjmp_svalue::get_index): Rename... | |
38 | (setjmp_svalue::get_enode_index): ...to this. | |
39 | (setjmp_svalue::get_exploded_node): Replace... | |
40 | (setjmp_svalue::get_setjmp_record): ...with this. | |
41 | ||
da7cf663 DM |
42 | 2020-01-22 David Malcolm <dmalcolm@redhat.com> |
43 | ||
44 | PR analyzer/93316 | |
45 | * analyzer.cc (is_setjmp_call_p): Check for "setjmp" as well as | |
46 | "_setjmp". | |
47 | ||
75038aa6 DM |
48 | 2020-01-22 David Malcolm <dmalcolm@redhat.com> |
49 | ||
50 | PR analyzer/93307 | |
51 | * analysis-plan.h: Wrap everything namespace "ana". | |
52 | * analyzer-logging.cc: Likewise. | |
53 | * analyzer-logging.h: Likewise. | |
54 | * analyzer-pass.cc (pass_analyzer::execute): Update for "ana" | |
55 | namespace. | |
56 | * analyzer-selftests.cc: Wrap everything namespace "ana". | |
57 | * analyzer-selftests.h: Likewise. | |
58 | * analyzer.h: Likewise for forward decls of types. | |
59 | * call-string.h: Likewise. | |
60 | * checker-path.cc: Likewise. | |
61 | * checker-path.h: Likewise. | |
62 | * constraint-manager.cc: Likewise. | |
63 | * constraint-manager.h: Likewise. | |
64 | * diagnostic-manager.cc: Likewise. | |
65 | * diagnostic-manager.h: Likewise. | |
66 | * engine.cc: Likewise. | |
67 | * engine.h: Likewise. | |
68 | * exploded-graph.h: Likewise. | |
69 | * function-set.cc: Likewise. | |
70 | * function-set.h: Likewise. | |
71 | * pending-diagnostic.cc: Likewise. | |
72 | * pending-diagnostic.h: Likewise. | |
73 | * program-point.cc: Likewise. | |
74 | * program-point.h: Likewise. | |
75 | * program-state.cc: Likewise. | |
76 | * program-state.h: Likewise. | |
77 | * region-model.cc: Likewise. | |
78 | * region-model.h: Likewise. | |
79 | * sm-file.cc: Likewise. | |
80 | * sm-malloc.cc: Likewise. | |
81 | * sm-pattern-test.cc: Likewise. | |
82 | * sm-sensitive.cc: Likewise. | |
83 | * sm-signal.cc: Likewise. | |
84 | * sm-taint.cc: Likewise. | |
85 | * sm.cc: Likewise. | |
86 | * sm.h: Likewise. | |
87 | * state-purge.h: Likewise. | |
88 | * supergraph.cc: Likewise. | |
89 | * supergraph.h: Likewise. | |
90 | ||
4f01e577 DM |
91 | 2020-01-21 David Malcolm <dmalcolm@redhat.com> |
92 | ||
93 | PR analyzer/93352 | |
94 | * region-model.cc (int_cmp): Rename to... | |
95 | (array_region::key_cmp): ...this, using key_t rather than int. | |
96 | Rewrite in terms of comparisons rather than subtraction to | |
97 | ensure qsort is anti-symmetric when handling extreme values. | |
98 | (array_region::walk_for_canonicalization): Update for above | |
99 | renaming. | |
100 | * region-model.h (array_region::key_cmp): New decl. | |
101 | ||
07c86323 DM |
102 | 2020-01-17 David Malcolm <dmalcolm@redhat.com> |
103 | ||
104 | PR analyzer/93290 | |
105 | * region-model.cc (region_model::eval_condition_without_cm): Avoid | |
106 | gcc_unreachable for unexpected operations for the case where | |
107 | we're comparing an svalue against itself. | |
108 | ||
5f030383 DM |
109 | 2020-01-17 David Malcolm <dmalcolm@redhat.com> |
110 | ||
111 | PR analyzer/93281 | |
112 | * region-model.cc | |
113 | (region_model::convert_byte_offset_to_array_index): Convert to | |
114 | ssizetype before dividing by byte_size. Use fold_binary rather | |
115 | than fold_build2 to avoid needlessly constructing a tree for the | |
116 | non-const case. | |
117 | ||
49e9a999 DM |
118 | 2020-01-15 David Malcolm <dmalcolm@redhat.com> |
119 | ||
120 | * engine.cc (class impl_region_model_context): Fix comment. | |
121 | ||
32077b69 DM |
122 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
123 | ||
124 | PR analyzer/93212 | |
125 | * region-model.cc (make_region_for_type): Use | |
126 | FUNC_OR_METHOD_TYPE_P rather than comparing against FUNCTION_TYPE. | |
127 | * region-model.h (function_region::function_region): Likewise. | |
128 | ||
7fb3669e DM |
129 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
130 | ||
131 | * program-state.cc (sm_state_map::clone_with_remapping): Copy | |
132 | m_global_state. | |
133 | (selftest::test_program_state_merging_2): New selftest. | |
134 | (selftest::analyzer_program_state_cc_tests): Call it. | |
135 | ||
e2a538b1 DM |
136 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
137 | ||
138 | * checker-path.h (checker_path::get_checker_event): New function. | |
139 | (checker_path): Add DISABLE_COPY_AND_ASSIGN; make fields private. | |
140 | * diagnostic-manager.cc | |
141 | (diagnostic_manager::prune_for_sm_diagnostic): Replace direct | |
142 | access to checker_path::m_events with accessor functions. Fix | |
143 | overlong line. | |
144 | (diagnostic_manager::prune_interproc_events): Replace direct | |
145 | access to checker_path::m_events with accessor functions. | |
146 | (diagnostic_manager::finish_pruning): Likewise. | |
147 | ||
94946989 DM |
148 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
149 | ||
150 | * checker-path.h (checker_event::clone): Delete vfunc decl. | |
151 | (debug_event::clone): Delete vfunc impl. | |
152 | (custom_event::clone): Delete vfunc impl. | |
153 | (statement_event::clone): Delete vfunc impl. | |
154 | (function_entry_event::clone): Delete vfunc impl. | |
155 | (state_change_event::clone): Delete vfunc impl. | |
156 | (start_cfg_edge_event::clone): Delete vfunc impl. | |
157 | (end_cfg_edge_event::clone): Delete vfunc impl. | |
158 | (call_event::clone): Delete vfunc impl. | |
159 | (return_event::clone): Delete vfunc impl. | |
160 | (setjmp_event::clone): Delete vfunc impl. | |
161 | (rewind_from_longjmp_event::clone): Delete vfunc impl. | |
162 | (rewind_to_setjmp_event::clone): Delete vfunc impl. | |
163 | (warning_event::clone): Delete vfunc impl. | |
164 | ||
718930c0 DM |
165 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
166 | ||
167 | * supergraph.cc (supernode::dump_dot): Ensure that the TABLE | |
168 | element has at least one TR. | |
169 | ||
8397af8e DM |
170 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
171 | ||
172 | PR analyzer/58237 | |
173 | * engine.cc (leak_stmt_finder::find_stmt): Use get_pure_location | |
174 | when comparing against UNKNOWN_LOCATION. | |
175 | (stmt_requires_new_enode_p): Likewise. | |
176 | (exploded_graph::dump_exploded_nodes): Likewise. | |
177 | * supergraph.cc (supernode::get_start_location): Likewise. | |
178 | (supernode::get_end_location): Likewise. | |
179 | ||
697251b7 DM |
180 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
181 | ||
182 | PR analyzer/58237 | |
183 | * analyzer-selftests.cc (selftest::run_analyzer_selftests): Call | |
184 | selftest::analyzer_sm_file_cc_tests. | |
185 | * analyzer-selftests.h (selftest::analyzer_sm_file_cc_tests): New | |
186 | decl. | |
187 | * sm-file.cc: Include "analyzer/function-set.h" and | |
188 | "analyzer/analyzer-selftests.h". | |
189 | (get_file_using_fns): New function. | |
190 | (is_file_using_fn_p): New function. | |
191 | (fileptr_state_machine::on_stmt): Return true for known functions. | |
192 | (selftest::analyzer_sm_file_cc_tests): New function. | |
193 | ||
4804c5fe DM |
194 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
195 | ||
196 | * analyzer-selftests.cc (selftest::run_analyzer_selftests): Call | |
197 | selftest::analyzer_sm_signal_cc_tests. | |
198 | * analyzer-selftests.h (selftest::analyzer_sm_signal_cc_tests): | |
199 | New decl. | |
200 | * sm-signal.cc: Include "analyzer/function-set.h" and | |
201 | "analyzer/analyzer-selftests.h". | |
202 | (get_async_signal_unsafe_fns): New function. | |
203 | (signal_unsafe_p): Reimplement in terms of the above. | |
204 | (selftest::analyzer_sm_signal_cc_tests): New function. | |
205 | ||
a6b5f19c DM |
206 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
207 | ||
208 | * analyzer-selftests.cc (selftest::run_analyzer_selftests): Call | |
209 | selftest::analyzer_function_set_cc_tests. | |
210 | * analyzer-selftests.h (selftest::analyzer_function_set_cc_tests): | |
211 | New decl. | |
212 | * function-set.cc: New file. | |
213 | * function-set.h: New file. | |
214 | ||
ef7827b0 DM |
215 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
216 | ||
217 | * analyzer.h (fndecl_has_gimple_body_p): New decl. | |
218 | * engine.cc (impl_region_model_context::on_unknown_change): New | |
219 | function. | |
220 | (fndecl_has_gimple_body_p): Make non-static. | |
221 | (exploded_node::on_stmt): Treat __analyzer_dump_exploded_nodes as | |
222 | known. Track whether we have a call with unknown side-effects and | |
223 | pass it to on_call_post. | |
224 | * exploded-graph.h (impl_region_model_context::on_unknown_change): | |
225 | New decl. | |
226 | * program-state.cc (sm_state_map::on_unknown_change): New function. | |
227 | * program-state.h (sm_state_map::on_unknown_change): New decl. | |
228 | * region-model.cc: Include "bitmap.h". | |
229 | (region_model::on_call_pre): Return a bool, capturing whether the | |
230 | call has unknown side effects. | |
231 | (region_model::on_call_post): Add arg "bool unknown_side_effects" | |
232 | and if true, call handle_unrecognized_call. | |
233 | (class reachable_regions): New class. | |
234 | (region_model::handle_unrecognized_call): New function. | |
235 | * region-model.h (region_model::on_call_pre): Return a bool. | |
236 | (region_model::on_call_post): Add arg "bool unknown_side_effects". | |
237 | (region_model::handle_unrecognized_call): New decl. | |
238 | (region_model_context::on_unknown_change): New vfunc. | |
239 | (test_region_model_context::on_unknown_change): New function. | |
240 | ||
14f9d7b9 DM |
241 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
242 | ||
243 | * diagnostic-manager.cc (saved_diagnostic::operator==): Move here | |
244 | from header. Replace pointer equality test on m_var with call to | |
245 | pending_diagnostic::same_tree_p. | |
246 | * diagnostic-manager.h (saved_diagnostic::operator==): Move to | |
247 | diagnostic-manager.cc. | |
248 | * pending-diagnostic.cc (pending_diagnostic::same_tree_p): New. | |
249 | * pending-diagnostic.h (pending_diagnostic::same_tree_p): New. | |
250 | * sm-file.cc (file_diagnostic::subclass_equal_p): Replace pointer | |
251 | equality on m_arg with call to pending_diagnostic::same_tree_p. | |
252 | * sm-malloc.cc (malloc_diagnostic::subclass_equal_p): Likewise. | |
253 | (possible_null_arg::subclass_equal_p): Likewise. | |
254 | (null_arg::subclass_equal_p): Likewise. | |
255 | (free_of_non_heap::subclass_equal_p): Likewise. | |
256 | * sm-pattern-test.cc (pattern_match::operator==): Likewise. | |
257 | * sm-sensitive.cc (exposure_through_output_file::operator==): | |
258 | Likewise. | |
259 | * sm-taint.cc (tainted_array_index::operator==): Likewise. | |
260 | ||
f474fbd5 DM |
261 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
262 | ||
263 | * diagnostic-manager.cc (dedupe_winners::add): Add logging | |
264 | of deduplication decisions made. | |
265 | ||
757bf1df DM |
266 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> |
267 | ||
268 | * ChangeLog: New file. | |
269 | * analyzer-selftests.cc: New file. | |
270 | * analyzer-selftests.h: New file. | |
271 | * analyzer.opt: New file. | |
272 | * analysis-plan.cc: New file. | |
273 | * analysis-plan.h: New file. | |
274 | * analyzer-logging.cc: New file. | |
275 | * analyzer-logging.h: New file. | |
276 | * analyzer-pass.cc: New file. | |
277 | * analyzer.cc: New file. | |
278 | * analyzer.h: New file. | |
279 | * call-string.cc: New file. | |
280 | * call-string.h: New file. | |
281 | * checker-path.cc: New file. | |
282 | * checker-path.h: New file. | |
283 | * constraint-manager.cc: New file. | |
284 | * constraint-manager.h: New file. | |
285 | * diagnostic-manager.cc: New file. | |
286 | * diagnostic-manager.h: New file. | |
287 | * engine.cc: New file. | |
288 | * engine.h: New file. | |
289 | * exploded-graph.h: New file. | |
290 | * pending-diagnostic.cc: New file. | |
291 | * pending-diagnostic.h: New file. | |
292 | * program-point.cc: New file. | |
293 | * program-point.h: New file. | |
294 | * program-state.cc: New file. | |
295 | * program-state.h: New file. | |
296 | * region-model.cc: New file. | |
297 | * region-model.h: New file. | |
298 | * sm-file.cc: New file. | |
299 | * sm-malloc.cc: New file. | |
300 | * sm-malloc.dot: New file. | |
301 | * sm-pattern-test.cc: New file. | |
302 | * sm-sensitive.cc: New file. | |
303 | * sm-signal.cc: New file. | |
304 | * sm-taint.cc: New file. | |
305 | * sm.cc: New file. | |
306 | * sm.h: New file. | |
307 | * state-purge.cc: New file. | |
308 | * state-purge.h: New file. | |
309 | * supergraph.cc: New file. | |
310 | * supergraph.h: New file. | |
311 | ||
312 | 2019-12-13 David Malcolm <dmalcolm@redhat.com> | |
313 | ||
314 | * Initial creation | |
315 | ||
316 | \f | |
317 | Copyright (C) 2019-2020 Free Software Foundation, Inc. | |
318 | ||
319 | Copying and distribution of this file, with or without modification, | |
320 | are permitted in any medium without royalty provided the copyright | |
321 | notice and this notice are preserved. |