diff options
author | Ian Lance Taylor <iant@golang.org> | 2023-06-26 09:57:21 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2023-06-26 09:57:21 -0700 |
commit | aa1e672b5d99102b03eb5fb9c51609c45f62bff7 (patch) | |
tree | 886212591b1c9d127eaaf234a4a2e22452ea384a /gcc/analyzer/ChangeLog | |
parent | 97e31a0a2a2d2273687fcdb4e5416aab1a2186e1 (diff) | |
parent | 3a39a31b8ae9c6465434aefa657f7fcc86f905c0 (diff) | |
download | gcc-devel/gccgo.zip gcc-devel/gccgo.tar.gz gcc-devel/gccgo.tar.bz2 |
Merge from trunk revision 3a39a31b8ae9c6465434aefa657f7fcc86f905c0.devel/gccgo
Diffstat (limited to 'gcc/analyzer/ChangeLog')
-rw-r--r-- | gcc/analyzer/ChangeLog | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog index 761674a..a477da5 100644 --- a/gcc/analyzer/ChangeLog +++ b/gcc/analyzer/ChangeLog @@ -1,3 +1,151 @@ +2023-06-24 David Malcolm <dmalcolm@redhat.com> + + * access-diagram.cc: Add #define INCLUDE_VECTOR. + * bounds-checking.cc: Likewise. + +2023-06-22 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/106626 + * access-diagram.cc: New file. + * access-diagram.h: New file. + * analyzer.h (class region_offset): Add default ctor. + (region_offset::make_byte_offset): New decl. + (region_offset::concrete_p): New. + (region_offset::get_concrete_byte_offset): New. + (region_offset::calc_symbolic_bit_offset): New decl. + (region_offset::calc_symbolic_byte_offset): New decl. + (region_offset::dump_to_pp): New decl. + (region_offset::dump): New decl. + (operator<, operator<=, operator>, operator>=): New decls for + region_offset. + * analyzer.opt + (-param=analyzer-text-art-string-ellipsis-threshold=): New. + (-param=analyzer-text-art-string-ellipsis-head-len=): New. + (-param=analyzer-text-art-string-ellipsis-tail-len=): New. + (-param=analyzer-text-art-ideal-canvas-width=): New. + (fanalyzer-debug-text-art): New. + * bounds-checking.cc: Include "intl.h", "diagnostic-diagram.h", + and "analyzer/access-diagram.h". + (class out_of_bounds::oob_region_creation_event_capacity): New. + (out_of_bounds::out_of_bounds): Add "model" and "sval_hint" + params. + (out_of_bounds::mark_interesting_stuff): Use the base region. + (out_of_bounds::add_region_creation_events): Use + oob_region_creation_event_capacity. + (out_of_bounds::get_dir): New pure vfunc. + (out_of_bounds::maybe_show_notes): New. + (out_of_bounds::maybe_show_diagram): New. + (out_of_bounds::make_access_diagram): New. + (out_of_bounds::m_model): New field. + (out_of_bounds::m_sval_hint): New field. + (out_of_bounds::m_region_creation_event_id): New field. + (concrete_out_of_bounds::concrete_out_of_bounds): Update for new + fields. + (concrete_past_the_end::concrete_past_the_end): Likewise. + (concrete_past_the_end::add_region_creation_events): Use + oob_region_creation_event_capacity. + (concrete_buffer_overflow::concrete_buffer_overflow): Update for + new fields. + (concrete_buffer_overflow::emit): Replace call to + maybe_describe_array_bounds with maybe_show_notes. + (concrete_buffer_overflow::get_dir): New. + (concrete_buffer_over_read::concrete_buffer_over_read): Update for + new fields. + (concrete_buffer_over_read::emit): Replace call to + maybe_describe_array_bounds with maybe_show_notes. + (concrete_buffer_overflow::get_dir): New. + (concrete_buffer_underwrite::concrete_buffer_underwrite): Update + for new fields. + (concrete_buffer_underwrite::emit): Replace call to + maybe_describe_array_bounds with maybe_show_notes. + (concrete_buffer_underwrite::get_dir): New. + (concrete_buffer_under_read::concrete_buffer_under_read): Update + for new fields. + (concrete_buffer_under_read::emit): Replace call to + maybe_describe_array_bounds with maybe_show_notes. + (concrete_buffer_under_read::get_dir): New. + (symbolic_past_the_end::symbolic_past_the_end): Update for new + fields. + (symbolic_buffer_overflow::symbolic_buffer_overflow): Likewise. + (symbolic_buffer_overflow::emit): Call maybe_show_notes. + (symbolic_buffer_overflow::get_dir): New. + (symbolic_buffer_over_read::symbolic_buffer_over_read): Update for + new fields. + (symbolic_buffer_over_read::emit): Call maybe_show_notes. + (symbolic_buffer_over_read::get_dir): New. + (region_model::check_symbolic_bounds): Add "sval_hint" param. Pass + it and sized_offset_reg to diagnostics. + (region_model::check_region_bounds): Add "sval_hint" param, passing + it to diagnostics. + * diagnostic-manager.cc + (diagnostic_manager::emit_saved_diagnostic): Pass logger to + pending_diagnostic::emit. + * engine.cc: Add logger param to pending_diagnostic::emit + implementations. + * infinite-recursion.cc: Likewise. + * kf-analyzer.cc: Likewise. + * kf.cc: Likewise. Add nullptr for new param of + check_region_for_write. + * pending-diagnostic.h: Likewise in decl. + * region-model-manager.cc + (region_model_manager::get_or_create_int_cst): Convert param from + poly_int64 to const poly_wide_int_ref &. + (region_model_manager::maybe_fold_binop): Support type being NULL + when checking for floating-point types. + Check for (X + Y) - X => Y. Be less strict about types when folding + associative ops. Check for (X + Y) * CST => (X * CST) + (Y * CST). + * region-model-manager.h + (region_model_manager::get_or_create_int_cst): Convert param from + poly_int64 to const poly_wide_int_ref &. + * region-model.cc: Add logger param to pending_diagnostic::emit + implementations. + (region_model::check_external_function_for_access_attr): Update + for new param of check_region_for_write. + (region_model::deref_rvalue): Use nullptr rather than NULL. + (region_model::get_capacity): Handle RK_STRING. + (region_model::check_region_access): Add "sval_hint" param; pass it to + check_region_bounds. + (region_model::check_region_for_write): Add "sval_hint" param; + pass it to check_region_access. + (region_model::check_region_for_read): Add NULL for new param to + check_region_access. + (region_model::set_value): Pass rhs_sval to + check_region_for_write. + (region_model::get_representative_path_var_1): Handle SK_CONSTANT + in the check for infinite recursion. + * region-model.h (region_model::check_region_for_write): Add + "sval_hint" param. + (region_model::check_region_access): Likewise. + (region_model::check_symbolic_bounds): Likewise. + (region_model::check_region_bounds): Likewise. + * region.cc (region_offset::make_byte_offset): New. + (region_offset::calc_symbolic_bit_offset): New. + (region_offset::calc_symbolic_byte_offset): New. + (region_offset::dump_to_pp): New. + (region_offset::dump): New. + (struct linear_op): New. + (operator<, operator<=, operator>, operator>=): New, for + region_offset. + (region::get_next_offset): New. + (region::get_relative_symbolic_offset): Use ptrdiff_type_node. + (field_region::get_relative_symbolic_offset): Likewise. + (element_region::get_relative_symbolic_offset): Likewise. + (bit_range_region::get_relative_symbolic_offset): Likewise. + * region.h (region::get_next_offset): New decl. + * sm-fd.cc: Add logger param to pending_diagnostic::emit + implementations. + * sm-file.cc: Likewise. + * sm-malloc.cc: Likewise. + * sm-pattern-test.cc: Likewise. + * sm-sensitive.cc: Likewise. + * sm-signal.cc: Likewise. + * sm-taint.cc: Likewise. + * store.cc (bit_range::contains_p): Allow "out" to be null. + * store.h (byte_range::get_start_bit_offset): New. + (byte_range::get_next_bit_offset): New. + * varargs.cc: Add logger param to pending_diagnostic::emit + implementations. + 2023-06-10 Tim Lange <mail@tim-lange.me> PR analyzer/109577 |