Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/gpl3/gcc/dist/gcc initial import of GCC 10.3.0. ma...
details: https://anonhg.NetBSD.org/src/rev/dd28e1909ae6
branches: trunk
changeset: 378343:dd28e1909ae6
user: mrg <mrg%NetBSD.org@localhost>
date: Sat Apr 10 22:09:53 2021 +0000
description:
initial import of GCC 10.3.0. main changes include:
caveats:
- ABI issue between c++14 and c++17 fixed
- profile mode is removed from libstdc++
- -fno-common is now the default
new features:
- new flags -fallocation-dce, -fprofile-partial-training,
-fprofile-reproducible, -fprofile-prefix-path, and -fanalyzer
- many new compile and link time optimisations
- enhanced drive optimisations
- openacc 2.6 support
- openmp 5.0 features
- new warnings: -Wstring-compare and -Wzero-length-bounds
- extended warnings: -Warray-bounds, -Wformat-overflow,
-Wrestrict, -Wreturn-local-addr, -Wstringop-overflow,
-Warith-conversion, -Wmismatched-tags, and -Wredundant-tags
- some likely C2X features implemented
- more C++20 implemented
- many new arm & intel CPUs known
hundreds of reported bugs are fixed. full list of changes
can be found at:
https://gcc.gnu.org/gcc-10/changes.html
diffstat:
external/gpl3/gcc/dist/gcc/analyzer/ChangeLog | 1368 +
external/gpl3/gcc/dist/gcc/analyzer/analysis-plan.cc | 134 +
external/gpl3/gcc/dist/gcc/analyzer/analysis-plan.h | 60 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer-logging.cc | 228 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer-logging.h | 264 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer-pass.cc | 102 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer-selftests.cc | 68 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer-selftests.h | 51 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer.cc | 260 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer.h | 127 +
external/gpl3/gcc/dist/gcc/analyzer/analyzer.opt | 181 +
external/gpl3/gcc/dist/gcc/analyzer/bar-chart.cc | 102 +
external/gpl3/gcc/dist/gcc/analyzer/bar-chart.h | 60 +
external/gpl3/gcc/dist/gcc/analyzer/call-string.cc | 212 +
external/gpl3/gcc/dist/gcc/analyzer/call-string.h | 77 +
external/gpl3/gcc/dist/gcc/analyzer/checker-path.cc | 966 +
external/gpl3/gcc/dist/gcc/analyzer/checker-path.h | 532 +
external/gpl3/gcc/dist/gcc/analyzer/constraint-manager.cc | 2267 ++
external/gpl3/gcc/dist/gcc/analyzer/constraint-manager.h | 250 +
external/gpl3/gcc/dist/gcc/analyzer/diagnostic-manager.cc | 1479 +
external/gpl3/gcc/dist/gcc/analyzer/diagnostic-manager.h | 171 +
external/gpl3/gcc/dist/gcc/analyzer/engine.cc | 4114 ++++
external/gpl3/gcc/dist/gcc/analyzer/engine.h | 30 +
external/gpl3/gcc/dist/gcc/analyzer/exploded-graph.h | 904 +
external/gpl3/gcc/dist/gcc/analyzer/function-set.cc | 197 +
external/gpl3/gcc/dist/gcc/analyzer/function-set.h | 50 +
external/gpl3/gcc/dist/gcc/analyzer/pending-diagnostic.cc | 83 +
external/gpl3/gcc/dist/gcc/analyzer/pending-diagnostic.h | 274 +
external/gpl3/gcc/dist/gcc/analyzer/program-point.cc | 559 +
external/gpl3/gcc/dist/gcc/analyzer/program-point.h | 314 +
external/gpl3/gcc/dist/gcc/analyzer/program-state.cc | 1628 +
external/gpl3/gcc/dist/gcc/analyzer/program-state.h | 387 +
external/gpl3/gcc/dist/gcc/analyzer/reachability.h | 76 +
external/gpl3/gcc/dist/gcc/analyzer/region-model.cc | 8845 ++++++++++
external/gpl3/gcc/dist/gcc/analyzer/region-model.h | 2274 ++
external/gpl3/gcc/dist/gcc/analyzer/sm-file.cc | 441 +
external/gpl3/gcc/dist/gcc/analyzer/sm-malloc.cc | 848 +
external/gpl3/gcc/dist/gcc/analyzer/sm-malloc.dot | 89 +
external/gpl3/gcc/dist/gcc/analyzer/sm-pattern-test.cc | 156 +
external/gpl3/gcc/dist/gcc/analyzer/sm-sensitive.cc | 253 +
external/gpl3/gcc/dist/gcc/analyzer/sm-signal.cc | 376 +
external/gpl3/gcc/dist/gcc/analyzer/sm-taint.cc | 332 +
external/gpl3/gcc/dist/gcc/analyzer/sm.cc | 156 +
external/gpl3/gcc/dist/gcc/analyzer/sm.h | 193 +
external/gpl3/gcc/dist/gcc/analyzer/state-purge.cc | 540 +
external/gpl3/gcc/dist/gcc/analyzer/state-purge.h | 167 +
external/gpl3/gcc/dist/gcc/analyzer/supergraph.cc | 1068 +
external/gpl3/gcc/dist/gcc/analyzer/supergraph.h | 595 +
external/gpl3/gcc/dist/gcc/common/common-target-def.h | 2 +-
external/gpl3/gcc/dist/gcc/common/common-target.def | 16 +-
external/gpl3/gcc/dist/gcc/common/common-target.h | 2 +-
external/gpl3/gcc/dist/gcc/common/common-targhooks.c | 11 +-
external/gpl3/gcc/dist/gcc/common/common-targhooks.h | 4 +-
external/gpl3/gcc/dist/gcc/common/config/alpha/alpha-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/arc/arc-common.c | 4 +-
external/gpl3/gcc/dist/gcc/common/config/avr/avr-common.c | 104 +-
external/gpl3/gcc/dist/gcc/common/config/bfin/bfin-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/bpf/bpf-common.c | 42 +
external/gpl3/gcc/dist/gcc/common/config/c6x/c6x-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/cr16/cr16-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/cris/cris-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/csky/csky-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/default-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/epiphany/epiphany-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/fr30/fr30-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/frv/frv-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/gcn/gcn-common.c | 12 +-
external/gpl3/gcc/dist/gcc/common/config/h8300/h8300-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/i386/i386-common.c | 510 +-
external/gpl3/gcc/dist/gcc/common/config/i386/i386-cpuinfo.h | 136 +
external/gpl3/gcc/dist/gcc/common/config/ia64/ia64-common.c | 28 +-
external/gpl3/gcc/dist/gcc/common/config/iq2000/iq2000-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/lm32/lm32-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/m32r/m32r-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/m68k/m68k-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/mcore/mcore-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/microblaze/microblaze-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/mips/mips-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/mmix/mmix-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/mn10300/mn10300-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/msp430/msp430-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/nds32/nds32-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/nios2/nios2-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/nvptx/nvptx-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/pa/pa-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/pdp11/pdp11-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/pru/pru-common.c | 36 +
external/gpl3/gcc/dist/gcc/common/config/rs6000/rs6000-common.c | 28 +-
external/gpl3/gcc/dist/gcc/common/config/rx/rx-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/s390/s390-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/sh/sh-common.c | 13 +-
external/gpl3/gcc/dist/gcc/common/config/sparc/sparc-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/tilegx/tilegx-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/tilepro/tilepro-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/v850/v850-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/vax/vax-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/visium/visium-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/xstormy16/xstormy16-common.c | 2 +-
external/gpl3/gcc/dist/gcc/common/config/xtensa/xtensa-common.c | 2 +-
external/gpl3/gcc/dist/gcc/cp/constexpr.c | 3051 ++-
external/gpl3/gcc/dist/gcc/cp/cp-tree.h | 1046 +-
external/gpl3/gcc/dist/gcc/cp/dump.c | 2 +-
external/gpl3/gcc/dist/gcc/cp/friend.c | 9 +-
external/gpl3/gcc/dist/gcc/cp/rtti.c | 83 +-
external/gpl3/gcc/dist/gcc/cp/tree.c | 625 +-
external/gpl3/gcc/dist/gcc/cp/type-utils.h | 7 +-
external/gpl3/gcc/dist/gcc/cp/typeck2.c | 275 +-
external/gpl3/gcc/dist/gcc/d/dmd/MERGE | 2 +-
external/gpl3/gcc/dist/gcc/d/dmd/blockexit.c | 2 +
external/gpl3/gcc/dist/gcc/d/dmd/declaration.c | 31 +-
external/gpl3/gcc/dist/gcc/d/dmd/dmacro.c | 7 +-
external/gpl3/gcc/dist/gcc/d/dmd/dmodule.c | 5 +-
external/gpl3/gcc/dist/gcc/d/dmd/dstruct.c | 24 +-
external/gpl3/gcc/dist/gcc/d/dmd/dsymbol.c | 100 +-
external/gpl3/gcc/dist/gcc/d/dmd/expression.c | 29 +-
external/gpl3/gcc/dist/gcc/d/dmd/expressionsem.c | 119 +-
external/gpl3/gcc/dist/gcc/d/dmd/init.c | 2 +-
external/gpl3/gcc/dist/gcc/d/dmd/mtype.c | 275 +-
external/gpl3/gcc/dist/gcc/d/dmd/root/dsystem.h | 2 +-
external/gpl3/gcc/dist/gcc/d/dmd/root/filename.c | 3 +-
external/gpl3/gcc/dist/gcc/d/dmd/root/outbuffer.c | 31 +
external/gpl3/gcc/dist/gcc/d/dmd/root/outbuffer.h | 1 +
external/gpl3/gcc/dist/gcc/d/dmd/root/speller.c | 4 +-
external/gpl3/gcc/dist/gcc/d/dmd/statement.h | 9 +-
external/gpl3/gcc/dist/gcc/d/dmd/statementsem.c | 663 +-
external/gpl3/gcc/dist/gcc/d/dmd/target.h | 2 +
external/gpl3/gcc/dist/gcc/ginclude/float.h | 61 +-
external/gpl3/gcc/dist/gcc/ginclude/iso646.h | 2 +-
external/gpl3/gcc/dist/gcc/ginclude/stdalign.h | 2 +-
external/gpl3/gcc/dist/gcc/ginclude/stdarg.h | 2 +-
external/gpl3/gcc/dist/gcc/ginclude/stdatomic.h | 2 +-
external/gpl3/gcc/dist/gcc/ginclude/stdbool.h | 2 +-
external/gpl3/gcc/dist/gcc/ginclude/stdfix.h | 2 +-
external/gpl3/gcc/dist/gcc/ginclude/stdint-gcc.h | 7 +-
external/gpl3/gcc/dist/gcc/ginclude/stdnoreturn.h | 2 +-
external/gpl3/gcc/dist/gcc/ginclude/tgmath.h | 2 +-
external/gpl3/gcc/dist/gcc/lto/ChangeLog | 656 +-
external/gpl3/gcc/dist/gcc/lto/Make-lang.in | 25 +-
external/gpl3/gcc/dist/gcc/lto/common.c | 2 +-
external/gpl3/gcc/dist/gcc/lto/common.h | 2 +-
external/gpl3/gcc/dist/gcc/lto/config-lang.in | 4 +-
external/gpl3/gcc/dist/gcc/lto/lang-specs.h | 2 +-
external/gpl3/gcc/dist/gcc/lto/lang.opt | 67 +-
external/gpl3/gcc/dist/gcc/lto/lto-common.c | 3105 +++
external/gpl3/gcc/dist/gcc/lto/lto-common.h | 33 +
external/gpl3/gcc/dist/gcc/lto/lto-dump.c | 379 +
external/gpl3/gcc/dist/gcc/lto/lto-lang.c | 31 +-
external/gpl3/gcc/dist/gcc/lto/lto-object.c | 2 +-
external/gpl3/gcc/dist/gcc/lto/lto-partition.c | 76 +-
external/gpl3/gcc/dist/gcc/lto/lto-partition.h | 2 +-
external/gpl3/gcc/dist/gcc/lto/lto-symtab.c | 16 +-
external/gpl3/gcc/dist/gcc/lto/lto-symtab.h | 2 +-
external/gpl3/gcc/dist/gcc/lto/lto-tree.h | 2 +-
external/gpl3/gcc/dist/gcc/lto/lto.c | 2929 +---
external/gpl3/gcc/dist/gcc/lto/lto.h | 4 +-
155 files changed, 43682 insertions(+), 5078 deletions(-)
diffs (truncated from 56119 to 300 lines):
diff -r a73d9bec454c -r dd28e1909ae6 external/gpl3/gcc/dist/gcc/analyzer/ChangeLog
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/gpl3/gcc/dist/gcc/analyzer/ChangeLog Sat Apr 10 22:09:53 2021 +0000
@@ -0,0 +1,1368 @@
+2021-04-08 Release Manager
+
+ * GCC 10.3.0 released.
+
+2020-07-23 Release Manager
+
+ * GCC 10.2.0 released.
+
+2020-05-07 Release Manager
+
+ * GCC 10.1.0 released.
+
+2020-04-28 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ PR analyzer/94816
+ * engine.cc (impl_region_model_context::on_unexpected_tree_code):
+ Handle NULL tree.
+ * region-model.cc (region_model::add_region_for_type): Handle
+ NULL type.
+ * region-model.h
+ (test_region_model_context::on_unexpected_tree_code): Handle NULL
+ tree.
+
+2020-04-28 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ PR analyzer/94447
+ PR analyzer/94639
+ PR analyzer/94732
+ PR analyzer/94754
+ * analyzer.opt (Wanalyzer-use-of-uninitialized-value): Delete.
+ * program-state.cc (selftest::test_program_state_dumping): Update
+ expected dump result for removal of "uninit".
+ * region-model.cc (poison_kind_to_str): Delete POISON_KIND_UNINIT
+ case.
+ (root_region::ensure_stack_region): Initialize stack with null
+ svalue_id rather than with a typeless POISON_KIND_UNINIT value.
+ (root_region::ensure_heap_region): Likewise for the heap.
+ (region_model::dump_summary_of_rep_path_vars): Remove
+ summarization of uninit values.
+ (region_model::validate): Remove check that the stack has a
+ POISON_KIND_UNINIT value.
+ (poisoned_value_diagnostic::emit): Remove POISON_KIND_UNINIT
+ case.
+ (poisoned_value_diagnostic::describe_final_event): Likewise.
+ (selftest::test_dump): Update expected dump result for removal of
+ "uninit".
+ (selftest::test_svalue_equality): Remove "uninit" and "freed".
+ * region-model.h (enum poison_kind): Remove POISON_KIND_UNINIT.
+
+2020-04-01 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ PR analyzer/94378
+ * checker-path.cc: Include "bitmap.h".
+ * constraint-manager.cc: Likewise.
+ * diagnostic-manager.cc: Likewise.
+ * engine.cc: Likewise.
+ (exploded_node::detect_leaks): Pass null region_id to pop_frame.
+ * program-point.cc: Include "bitmap.h".
+ * program-state.cc: Likewise.
+ * region-model.cc (id_set<region_id>::id_set): Convert to...
+ (region_id_set::region_id_set): ...this.
+ (svalue_id_set::svalue_id_set): New ctor.
+ (region_model::copy_region): New function.
+ (region_model::copy_struct_region): New function.
+ (region_model::copy_union_region): New function.
+ (region_model::copy_array_region): New function.
+ (stack_region::pop_frame): Drop return value. Add
+ "result_dst_rid" param; if it is non-null, use copy_region to copy
+ the result to it. Rather than capture and pass a single "known
+ used" return value to be used by purge_unused_values, instead
+ gather and pass a set of known used return values.
+ (root_region::pop_frame): Drop return value. Add "result_dst_rid"
+ param.
+ (region_model::on_assignment): Use copy_region.
+ (region_model::on_return): Likewise for the result.
+ (region_model::on_longjmp): Pass null for pop_frame's
+ result_dst_rid.
+ (region_model::update_for_return_superedge): Pass the region for the
+ return value of the call, if any, to pop_frame, rather than setting
+ the lvalue for the lhs of the result.
+ (region_model::pop_frame): Drop return value. Add
+ "result_dst_rid" param.
+ (region_model::purge_unused_svalues): Convert third param from an
+ svalue_id * to an svalue_id_set *, updating the initial populating
+ of the "used" bitmap accordingly. Don't remap it when done.
+ (struct selftest::coord_test): New selftest fixture, extracted from...
+ (selftest::test_dump_2): ...here.
+ (selftest::test_compound_assignment): New selftest.
+ (selftest::test_stack_frames): Pass null to new param of pop_frame.
+ (selftest::analyzer_region_model_cc_tests): Call the new selftest.
+ * region-model.h (class id_set): Delete template.
+ (class region_id_set): Reimplement, using old id_set implementation.
+ (class svalue_id_set): Likewise. Convert from auto_sbitmap to
+ auto_bitmap.
+ (region::get_active_view): New accessor.
+ (stack_region::pop_frame): Drop return value. Add
+ "result_dst_rid" param.
+ (root_region::pop_frame): Likewise.
+ (region_model::pop_frame): Likewise.
+ (region_model::copy_region): New decl.
+ (region_model::purge_unused_svalues): Convert third param from an
+ svalue_id * to an svalue_id_set *.
+ (region_model::copy_struct_region): New decl.
+ (region_model::copy_union_region): New decl.
+ (region_model::copy_array_region): New decl.
+
+2020-03-27 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * program-state.cc (selftest::test_program_state_dumping): Update
+ expected dump to include symbolic_region's possibly_null field.
+ * region-model.cc (symbolic_region::print_fields): New vfunc
+ implementation.
+ (region_model::add_constraint): Clear m_possibly_null from
+ symbolic_regions now known to be non-NULL.
+ (selftest::test_malloc_constraints): New selftest.
+ (selftest::analyzer_region_model_cc_tests): Call it.
+ * region-model.h (region::dyn_cast_symbolic_region): Add non-const
+ overload.
+ (symbolic_region::dyn_cast_symbolic_region): Implement it.
+ (symbolic_region::print_fields): New vfunc override decl.
+
+2020-03-27 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * analyzer.h (class feasibility_problem): New forward decl.
+ * diagnostic-manager.cc (saved_diagnostic::saved_diagnostic):
+ Initialize new fields m_status, m_epath_length, and m_problem.
+ (saved_diagnostic::~saved_diagnostic): Delete m_problem.
+ (dedupe_candidate::dedupe_candidate): Convert "sd" param from a
+ const ref to a mutable ptr.
+ (dedupe_winners::add): Convert "sd" param from a const ref to a
+ mutable ptr. Record the length of the exploded_path. Record the
+ feasibility/infeasibility of sd into sd, capturing a
+ feasibility_problem when feasible_p fails, and storing it in sd.
+ (diagnostic_manager::emit_saved_diagnostics): Update for pass by
+ ptr rather than by const ref.
+ * diagnostic-manager.h (class saved_diagnostic): Add new enum
+ status. Add fields m_status, m_epath_length and m_problem.
+ (saved_diagnostic::set_feasible): New member function.
+ (saved_diagnostic::set_infeasible): New member function.
+ (saved_diagnostic::get_feasibility_problem): New accessor.
+ (saved_diagnostic::get_status): New accessor.
+ (saved_diagnostic::set_epath_length): New member function.
+ (saved_diagnostic::get_epath_length): New accessor.
+ * engine.cc: Include "gimple-pretty-print.h".
+ (exploded_path::feasible_p): Add OUT param and, if non-NULL, write
+ a new feasibility_problem to it on failure.
+ (viz_callgraph_node::dump_dot): Convert begin_tr calls to
+ begin_trtd. Convert end_tr calls to end_tdtr.
+ (class exploded_graph_annotator): New subclass of dot_annotator.
+ (impl_run_checkers): Add a second -fdump-analyzer-supergraph dump
+ after the analysis runs, using exploded_graph_annotator. dumping
+ to DUMP_BASE_NAME.supergraph-eg.dot.
+ * exploded-graph.h (exploded_node::get_dot_fillcolor): Make
+ public.
+ (exploded_path::feasible_p): Add OUT param.
+ (class feasibility_problem): New class.
+ * state-purge.cc (state_purge_annotator::add_node_annotations):
+ Return a bool, add a "within_table" param.
+ (print_vec_of_names): Convert begin_tr calls to begin_trtd.
+ Convert end_tr calls to end_tdtr.
+ (state_purge_annotator::add_stmt_annotations): Add "within_row"
+ param.
+ * state-purge.h ((state_purge_annotator::add_node_annotations):
+ Return a bool, add a "within_table" param.
+ (state_purge_annotator::add_stmt_annotations): Add "within_row"
+ param.
+ * supergraph.cc (supernode::dump_dot): Call add_node_annotations
+ twice: as before, passing false for "within_table", then again
+ with true when within the TABLE element. Convert some begin_tr
+ calls to begin_trtd, and some end_tr calls to end_tdtr.
+ Repeat each add_stmt_annotations call, distinguishing between
+ calls that add TRs and those that add TDs to an existing TR.
+ Add a call to add_after_node_annotations.
+ * supergraph.h (dot_annotator::add_node_annotations): Add a
+ "within_table" param.
+ (dot_annotator::add_stmt_annotations): Add a "within_row" param.
+ (dot_annotator::add_after_node_annotations): New vfunc.
+
+2020-03-27 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * diagnostic-manager.cc (dedupe_winners::add): Show the
+ exploded_node index in the log messages.
+ (diagnostic_manager::emit_saved_diagnostics): Log a summary of
+ m_saved_diagnostics at entry.
+
+2020-03-27 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * supergraph.cc (superedge::dump): Add space before description;
+ move newline to non-pretty_printer overload.
+
+2020-03-18 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * region-model.cc: Include "stor-layout.h".
+ (region_model::dump_to_pp): Rather than calling
+ dump_summary_of_map on each of the current frame and the globals,
+ instead get a vec of representative path_vars for all regions,
+ and then dump a summary of all of them.
+ (region_model::dump_summary_of_map): Delete, rewriting into...
+ (region_model::dump_summary_of_rep_path_vars): ...this new
+ function, working on a vec of path_vars.
+ (region_model::set_value): New overload.
+ (region_model::get_representative_path_var): Rename
+ "parent_region" local to "parent_reg" and consolidate with other
+ local. Guard test for grandparent being stack on parent_reg being
+ non-NULL. Move handling for parent being an array_region to
+ within guard for parent_reg being non-NULL.
+ (selftest::make_test_compound_type): New function.
+ (selftest::test_dump_2): New selftest.
+ (selftest::test_dump_3): New selftest.
+ (selftest::test_stack_frames): Update expected output from
+ simplified dump to show "a" and "b" from parent frame and "y" in
+ child frame.
+ (selftest::analyzer_region_model_cc_tests): Call test_dump_2 and
+ test_dump_3.
+ * region-model.h (region_model::set_value): New overload decl.
+ (region_model::dump_summary_of_map): Delete.
+ (region_model::dump_summary_of_rep_path_vars): New.
+
+2020-03-18 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * region-model.h (class noop_region_model_context): New subclass
+ of region_model_context.
+ (class tentative_region_model_context): Inherit from
+ noop_region_model_context rather than from region_model_context;
+ drop redundant vfunc implementations.
+ (class test_region_model_context): Likewise.
+
+2020-03-18 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * engine.cc (exploded_node::exploded_node): Move implementation
+ here from header; accept point_and_state by const reference rather
+ than by value.
+ * exploded-graph.h (exploded_node::exploded_node): Pass
+ point_and_state by const reference rather than by value. Move
+ body to engine.cc.
+
+2020-03-18 Jakub Jelinek <jakub%redhat.com@localhost>
+
+ * sm-malloc.cc (malloc_state_machine::on_stmt): Fix up duplicated word
+ issue in a comment.
+ * region-model.cc (region_model::make_region_for_unexpected_tree_code,
+ region_model::delete_region_and_descendents): Likewise.
+ * engine.cc (class exploded_cluster): Likewise.
+ * diagnostic-manager.cc (class path_builder): Likewise.
+
+2020-03-13 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ PR analyzer/94099
+ PR analyzer/94105
+ * diagnostic-manager.cc (for_each_state_change): Bulletproof
+ against errors in get_rvalue by passing a
+ tentative_region_model_context and rejecting if there's an error.
+ * region-model.cc (region_model::get_lvalue_1): When handling
+ ARRAY_REF, handle results of error-handling. Handle NOP_EXPR.
+
+2020-03-06 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * analyzer.h (class array_region): New forward decl.
+ * program-state.cc (selftest::test_program_state_dumping_2): New.
+ (selftest::analyzer_program_state_cc_tests): Call it.
+ * region-model.cc (array_region::constant_from_key): New.
+ (region_model::get_representative_tree): Handle region_svalue by
+ generating an ADDR_EXPR.
+ (region_model::get_representative_path_var): In view handling,
+ remove erroneous TREE_TYPE when determining the type of the tree.
+ Handle array regions and STRING_CST.
+ (selftest::assert_dump_tree_eq): New.
+ (ASSERT_DUMP_TREE_EQ): New macro.
+ (selftest::test_get_representative_tree): New selftest.
+ (selftest::analyzer_region_model_cc_tests): Call it.
+ * region-model.h (region::dyn_cast_array_region): New vfunc.
+ (array_region::dyn_cast_array_region): New vfunc implementation.
+ (array_region::constant_from_key): New decl.
+
+2020-03-06 David Malcolm <dmalcolm%redhat.com@localhost>
+
+ * analyzer.h (dump_quoted_tree): New decl.
+ * engine.cc (exploded_node::dump_dot): Pass region model to
+ sm_state_map::print.
+ * program-state.cc: Include diagnostic-core.h.
+ (sm_state_map::print): Add "model" param and use it to print
+ representative trees. Only print origin information if non-null.
+ (sm_state_map::dump): Pass NULL for model to print call.
+ (program_state::print): Pass region model to sm_state_map::print.
+ (program_state::dump_to_pp): Use spaces rather than newlines when
+ summarizing. Pass region_model to sm_state_map::print.
+ (ana::selftest::assert_dump_eq): New function.
+ (ASSERT_DUMP_EQ): New macro.
+ (ana::selftest::test_program_state_dumping): New function.
+ (ana::selftest::analyzer_program_state_cc_tests): Call it.
+ * program-state.h (program_state::print): Add model param.
+ * region-model.cc (dump_quoted_tree): New function.
+ (map_region::print_fields): Use dump_quoted_tree rather than
+ %qE to avoid lang-dependent output.
+ (map_region::dump_child_label): Likewise.
+ (region_model::dump_summary_of_map): For SK_REGION, when
Home |
Main Index |
Thread Index |
Old Index