This is an automated email from the git hooks/post-receive script.
unknown user pushed a change to branch master in repository gcc.
from 8d0ec97fc66 Add a Relation iterator to the relation oracle. new a25818cd302 sarif output: introduce sarif_generation_options new 0c5b98be080 diagnostics: make diagnostic_context::m_abort_on_error private new bc39b0072f5 diagnostics: use diagnostic_option_id for m_opt_permissive new 9c4336cbf05 c,c++: use unique_ptr in name_hint to reduce naked 'new' new 1dc8916bcbb pass_manager: add m_ prefix to pass fields accessed via passes.def new 0ef00f71969 analyzer: add a call_details::dump (using text_art) new 5ecea59621c analyzer: fail if we see unexpected gimple stmt codes new d0500cd5e24 analyzer: use analyzer/common.h as a common header new 978e9dfc0a1 analyzer: convert various enums to "enum class" new c2f8c7ad2db analyzer: convert gcall * to gcall & in many places new 4e1f545df9d analyzer: convert various call_summary * to call_summary & new 6f9764571d2 analyzer: use unique_ptr for state_machine instances new cf5fb8f156b Eliminate make-unique.h and ::make_unique new 13f4b12393f analyzer,c++: add placeholder implementation of ana::transl [...] new 7a39e0ca065 analyzer: initial implementation of exception handling [PR97111] new 2a63dc8c65d analyzer: fix null deref false negative on std::unique_ptr [...] new a1922f0252b analyzer: handle NRVO and DECL_BY_REFERENCE [PR111536]
The 17 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference.
Summary of changes: gcc/analyzer/access-diagram.cc | 77 +- gcc/analyzer/access-diagram.h | 2 +- gcc/analyzer/analysis-plan.cc | 20 +- gcc/analyzer/analyzer-language.cc | 10 +- gcc/analyzer/analyzer-pass.cc | 11 +- gcc/analyzer/analyzer-selftests.cc | 8 +- gcc/analyzer/analyzer.cc | 70 +- gcc/analyzer/analyzer.opt | 4 + gcc/analyzer/analyzer.opt.urls | 3 + gcc/analyzer/bounds-checking.cc | 117 ++- gcc/analyzer/call-details.cc | 115 ++- gcc/analyzer/call-details.h | 14 +- gcc/analyzer/call-info.cc | 40 +- gcc/analyzer/call-info.h | 8 +- gcc/analyzer/call-string.cc | 23 +- gcc/analyzer/call-summary.cc | 16 +- gcc/analyzer/call-summary.h | 6 +- gcc/analyzer/checker-event.cc | 164 ++-- gcc/analyzer/checker-event.h | 216 +++-- gcc/analyzer/checker-path.cc | 60 +- gcc/analyzer/{analyzer.h => common.h} | 51 +- gcc/analyzer/complexity.cc | 28 +- gcc/analyzer/constraint-manager.cc | 77 +- gcc/analyzer/constraint-manager.h | 6 +- gcc/analyzer/diagnostic-manager.cc | 322 ++++--- gcc/analyzer/diagnostic-manager.h | 1 + gcc/analyzer/engine.cc | 736 +++++++++++---- gcc/analyzer/exploded-graph.h | 56 +- gcc/analyzer/feasible-graph.cc | 28 +- gcc/analyzer/infinite-loop.cc | 101 +-- gcc/analyzer/infinite-recursion.cc | 53 +- gcc/analyzer/kf-analyzer.cc | 50 +- gcc/analyzer/kf-lang-cp.cc | 198 ++++- gcc/analyzer/kf.cc | 391 ++++---- gcc/analyzer/known-function-manager.cc | 15 +- gcc/analyzer/pending-diagnostic.cc | 51 +- gcc/analyzer/program-point.cc | 32 +- gcc/analyzer/program-state.cc | 121 ++- gcc/analyzer/program-state.h | 26 +- gcc/analyzer/ranges.cc | 34 +- gcc/analyzer/record-layout.cc | 14 +- gcc/analyzer/region-model-asm.cc | 18 +- gcc/analyzer/region-model-manager.cc | 36 +- gcc/analyzer/region-model-reachability.cc | 31 +- gcc/analyzer/region-model.cc | 983 ++++++++++++++++----- gcc/analyzer/region-model.h | 131 ++- gcc/analyzer/region.cc | 49 +- gcc/analyzer/sm-fd.cc | 387 ++++---- gcc/analyzer/sm-file.cc | 95 +- gcc/analyzer/sm-malloc.cc | 120 ++- gcc/analyzer/sm-pattern-test.cc | 20 +- gcc/analyzer/sm-sensitive.cc | 29 +- gcc/analyzer/sm-signal.cc | 67 +- gcc/analyzer/sm-taint.cc | 65 +- gcc/analyzer/sm.cc | 68 +- gcc/analyzer/sm.h | 24 +- gcc/analyzer/state-purge.cc | 25 +- gcc/analyzer/store.cc | 55 +- gcc/analyzer/store.h | 4 +- gcc/analyzer/supergraph.cc | 289 ++++-- gcc/analyzer/supergraph.h | 169 +++- gcc/analyzer/svalue.cc | 60 +- gcc/analyzer/svalue.h | 19 +- gcc/analyzer/symbol.cc | 7 +- gcc/analyzer/trimmed-graph.cc | 17 +- gcc/analyzer/varargs.cc | 101 +-- gcc/c-family/c-pretty-print.cc | 3 +- gcc/c-family/name-hint.h | 6 +- gcc/c/c-decl.cc | 18 +- gcc/c/c-objc-common.cc | 3 +- gcc/c/c-parser.cc | 8 +- gcc/cp/cxx-pretty-print.cc | 3 +- gcc/cp/error.cc | 1 - gcc/cp/name-lookup.cc | 48 +- gcc/cp/parser.cc | 48 +- gcc/diagnostic-format-json.cc | 33 +- gcc/diagnostic-format-sarif.cc | 320 +++---- gcc/diagnostic-format-sarif.h | 36 +- gcc/diagnostic-format-text.cc | 3 +- gcc/diagnostic.cc | 7 +- gcc/diagnostic.h | 22 +- gcc/doc/invoke.texi | 13 + gcc/dumpfile.cc | 35 +- gcc/gcc-attribute-urlifier.cc | 1 - gcc/gcc-urlifier.cc | 3 +- gcc/gimple.h | 2 +- gcc/jit/dummy-frontend.cc | 6 +- gcc/json-parsing.cc | 21 +- gcc/json.cc | 5 +- gcc/lazy-diagnostic-path.cc | 5 +- gcc/libgdiagnostics.cc | 59 +- gcc/libsarifreplay.cc | 5 +- gcc/lto-wrapper.cc | 1 - gcc/make-unique.h | 35 - gcc/opts-diagnostic.cc | 15 +- gcc/opts.cc | 2 +- gcc/pass_manager.h | 20 +- gcc/passes.cc | 34 +- gcc/pretty-print.cc | 7 +- .../c-c++-common/analyzer/analyzer-verbosity-2a.c | 2 +- .../c-c++-common/analyzer/analyzer-verbosity-3a.c | 2 +- gcc/testsuite/c-c++-common/analyzer/attr-const-2.c | 2 +- .../c-c++-common/analyzer/attr-malloc-4.c | 2 +- .../c-c++-common/analyzer/attr-malloc-5.c | 2 +- .../c-c++-common/analyzer/attr-malloc-6.c | 1 + .../analyzer/attr-malloc-CVE-2019-19078-usb-leak.c | 2 + .../c-c++-common/analyzer/attr-malloc-exception.c | 17 + .../analyzer/call-summaries-pr107158-2.c | 2 +- .../analyzer/call-summaries-pr107158.c | 2 +- gcc/testsuite/c-c++-common/analyzer/capacity-2.c | 1 + .../c-c++-common/analyzer/coreutils-sum-pr108666.c | 2 + .../c-c++-common/analyzer/data-model-22.c | 2 + .../c-c++-common/analyzer/data-model-5d.c | 1 + ...deref-before-check-pr108455-git-pack-revindex.c | 1 + .../deref-before-check-pr108475-haproxy-tcpcheck.c | 1 + gcc/testsuite/c-c++-common/analyzer/edges-2.c | 2 + gcc/testsuite/c-c++-common/analyzer/fd-2.c | 4 +- gcc/testsuite/c-c++-common/analyzer/fd-3.c | 2 + gcc/testsuite/c-c++-common/analyzer/fd-meaning.c | 5 +- gcc/testsuite/c-c++-common/analyzer/file-1.c | 2 + gcc/testsuite/c-c++-common/analyzer/file-3.c | 2 + .../c-c++-common/analyzer/file-meaning-1.c | 1 + gcc/testsuite/c-c++-common/analyzer/hard-reg-1.c | 8 + .../c-c++-common/analyzer/infinite-recursion.c | 2 + gcc/testsuite/c-c++-common/analyzer/leak-3.c | 1 + .../c-c++-common/analyzer/malloc-dedupe-1.c | 1 + .../c-c++-common/analyzer/malloc-in-loop.c | 1 + .../c-c++-common/analyzer/malloc-many-paths-3.c | 1 + .../c-c++-common/analyzer/malloc-paths-5.c | 1 + .../c-c++-common/analyzer/malloc-paths-7.c | 1 + .../c-c++-common/analyzer/malloc-paths-8.c | 1 + .../c-c++-common/analyzer/malloc-vs-local-1a.c | 1 + .../c-c++-common/analyzer/malloc-vs-local-2.c | 1 + .../c-c++-common/analyzer/malloc-vs-local-3.c | 1 + gcc/testsuite/c-c++-common/analyzer/paths-7.c | 1 + gcc/testsuite/c-c++-common/analyzer/pr110830.c | 2 + .../analyzer/pr93032-mztools-simplified.c | 1 + .../analyzer/pr93355-localealias-feasibility-3.c | 1 + .../analyzer/pr93355-localealias-simplified.c | 1 + .../c-c++-common/analyzer/pr96650-1-trans.c | 1 + gcc/testsuite/c-c++-common/analyzer/pr97072.c | 2 +- gcc/testsuite/c-c++-common/analyzer/pr98575-1.c | 2 +- gcc/testsuite/c-c++-common/analyzer/pr99716-1.c | 2 + gcc/testsuite/c-c++-common/analyzer/pr99716-2.c | 1 + gcc/testsuite/c-c++-common/analyzer/pr99716-3.c | 1 + gcc/testsuite/c-c++-common/analyzer/pragma-2.c | 1 + gcc/testsuite/c-c++-common/analyzer/rhbz1878600.c | 2 + gcc/testsuite/c-c++-common/analyzer/strndup-1.c | 1 + .../analyzer/write-to-string-literal-4-disabled.c | 1 + .../analyzer/write-to-string-literal-4.c | 2 + .../analyzer/write-to-string-literal-5.c | 1 + gcc/testsuite/c-c++-common/analyzer/zlib-5.c | 1 + .../g++.dg/analyzer/exception-could-throw-1.C | 37 + .../g++.dg/analyzer/exception-could-throw-2.C | 32 + .../g++.dg/analyzer/exception-dynamic-spec.C | 62 ++ gcc/testsuite/g++.dg/analyzer/exception-leak-1.C | 8 + gcc/testsuite/g++.dg/analyzer/exception-leak-2.C | 18 + gcc/testsuite/g++.dg/analyzer/exception-leak-3.C | 12 + gcc/testsuite/g++.dg/analyzer/exception-leak-4.C | 16 + gcc/testsuite/g++.dg/analyzer/exception-leak-5.C | 51 ++ gcc/testsuite/g++.dg/analyzer/exception-leak-6.C | 22 + gcc/testsuite/g++.dg/analyzer/exception-nothrow.C | 26 + gcc/testsuite/g++.dg/analyzer/exception-path-1.C | 34 + .../g++.dg/analyzer/exception-path-catch-all-1.C | 16 + .../g++.dg/analyzer/exception-path-catch-all-2.C | 22 + .../analyzer/exception-path-unwind-multiple-2.C | 55 ++ .../analyzer/exception-path-unwind-multiple.C | 48 + .../g++.dg/analyzer/exception-path-unwind-single.C | 43 + .../g++.dg/analyzer/exception-path-with-cleanups.C | 27 + .../g++.dg/analyzer/exception-rethrow-1.C | 13 + .../g++.dg/analyzer/exception-rethrow-2.C | 25 + gcc/testsuite/g++.dg/analyzer/exception-stack-1.C | 35 + gcc/testsuite/g++.dg/analyzer/exception-stack-2.C | 44 + .../g++.dg/analyzer/exception-subclass-1.C | 21 + .../g++.dg/analyzer/exception-subclass-2.C | 25 + gcc/testsuite/g++.dg/analyzer/exception-value-1.C | 20 + gcc/testsuite/g++.dg/analyzer/exception-value-2.C | 36 + gcc/testsuite/g++.dg/analyzer/fno-exception.C | 12 + gcc/testsuite/g++.dg/analyzer/nrvo-1.C | 18 + gcc/testsuite/g++.dg/analyzer/nrvo-2.C | 26 + gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-1.C | 11 + gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-1b.C | 12 + gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-2.C | 10 + gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-2b.C | 13 + gcc/testsuite/g++.dg/analyzer/pr94028.C | 2 +- gcc/testsuite/g++.dg/analyzer/std-unexpected.C | 9 + gcc/testsuite/g++.dg/analyzer/unique_ptr-1.C | 13 + gcc/testsuite/g++.dg/analyzer/unique_ptr-2.C | 17 + gcc/testsuite/g++.dg/coroutines/pr105287.C | 2 +- .../gcc.dg/plugin/analyzer_cpython_plugin.cc | 36 +- gcc/testsuite/gcc.dg/plugin/analyzer_gil_plugin.cc | 40 +- .../gcc.dg/plugin/analyzer_kernel_plugin.cc | 17 +- .../gcc.dg/plugin/analyzer_known_fns_plugin.cc | 12 +- .../gcc.dg/plugin/diagnostic_group_plugin.cc | 4 +- .../plugin/diagnostic_plugin_xhtml_format.cc | 49 +- gcc/text-art/style.cc | 1 - gcc/text-art/styled-string.cc | 1 - gcc/text-art/table.cc | 1 - gcc/text-art/tree-widget.cc | 5 +- gcc/text-art/widget.cc | 11 +- gcc/timevar.cc | 15 +- gcc/toplev.cc | 7 +- gcc/tree-diagnostic-client-data-hooks.cc | 3 +- 203 files changed, 5375 insertions(+), 2896 deletions(-) rename gcc/analyzer/{analyzer.h => common.h} (92%) delete mode 100644 gcc/make-unique.h create mode 100644 gcc/testsuite/c-c++-common/analyzer/attr-malloc-exception.c create mode 100644 gcc/testsuite/c-c++-common/analyzer/hard-reg-1.c create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-could-throw-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-could-throw-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-dynamic-spec.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-leak-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-leak-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-leak-3.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-leak-4.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-leak-5.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-leak-6.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-nothrow.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-path-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-path-catch-all-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-path-catch-all-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-path-unwind-multiple.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-path-unwind-single.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-path-with-cleanups.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-rethrow-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-rethrow-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-stack-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-stack-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-subclass-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-subclass-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-value-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/exception-value-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/fno-exception.C create mode 100644 gcc/testsuite/g++.dg/analyzer/nrvo-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/nrvo-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-1b.C create mode 100644 gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-2.C create mode 100644 gcc/testsuite/g++.dg/analyzer/nrvo-pr111536-2b.C create mode 100644 gcc/testsuite/g++.dg/analyzer/std-unexpected.C create mode 100644 gcc/testsuite/g++.dg/analyzer/unique_ptr-1.C create mode 100644 gcc/testsuite/g++.dg/analyzer/unique_ptr-2.C