]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/analyzer/ChangeLog
c-family: One more 40752 tweak for unsigned char.
[thirdparty/gcc.git] / gcc / analyzer / ChangeLog
CommitLineData
591b59eb
DM
12020-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
82020-01-22 David Malcolm <dmalcolm@redhat.com>
9
10 * sm-signal.cc: Fix nesting of CHECKING_P and namespace ana.
11
fd9982bb
DM
122020-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
422020-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
482020-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
912020-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
1022020-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
1092020-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
1182020-01-15 David Malcolm <dmalcolm@redhat.com>
119
120 * engine.cc (class impl_region_model_context): Fix comment.
121
32077b69
DM
1222020-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
1292020-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
1362020-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
1482020-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
1652020-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
1702020-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
1802020-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
1942020-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
2062020-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
2152020-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
2412020-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
2612020-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
2662020-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
3122019-12-13 David Malcolm <dmalcolm@redhat.com>
313
314 * Initial creation
315
316\f
317Copyright (C) 2019-2020 Free Software Foundation, Inc.
318
319Copying and distribution of this file, with or without modification,
320are permitted in any medium without royalty provided the copyright
321notice and this notice are preserved.