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/f18ca55dbdc0
branches:  trunk
changeset: 954485:f18ca55dbdc0
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 f3825874bd43 -r f18ca55dbdc0 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