This is an automated email from the git hooks/post-receive script.
unknown user pushed a change to branch master in repository gcc.
from a7aef0a5a2b analyzer: fix feasibility false +ve on jumps through functi [...] new ea63396f6b0 libstdc++: add experimental Contracts support new 2efb237ffc6 c++: implement P1492 contracts
The 2 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/c-family/c-cppbuiltin.cc | 6 + gcc/c-family/c.opt | 41 + gcc/cp/Make-lang.in | 2 +- gcc/cp/config-lang.in | 1 + gcc/cp/constexpr.cc | 121 +- gcc/cp/contracts.cc | 2240 ++++++++++++++++++++ gcc/cp/contracts.h | 305 +++ gcc/cp/cp-gimplify.cc | 17 + gcc/cp/cp-objcp-common.cc | 41 + gcc/cp/cp-tree.def | 11 + gcc/cp/cp-tree.h | 64 + gcc/cp/decl.cc | 115 +- gcc/cp/decl2.cc | 15 +- gcc/cp/error.cc | 3 +- gcc/cp/g++spec.cc | 12 + gcc/cp/mangle.cc | 7 + gcc/cp/module.cc | 30 +- gcc/cp/parser.cc | 522 ++++- gcc/cp/parser.h | 3 + gcc/cp/pt.cc | 164 +- gcc/cp/search.cc | 28 + gcc/cp/semantics.cc | 28 +- gcc/cp/tree.cc | 67 + gcc/cp/typeck.cc | 13 +- gcc/doc/invoke.texi | 79 + .../g++.dg/contracts/backtrace_handler/Makefile | 13 + .../g++.dg/contracts/backtrace_handler/README | 12 + .../contracts/backtrace_handler/assert_fail.cpp | 23 + .../contracts/backtrace_handler/example_out.txt | 12 + .../contracts/backtrace_handler/example_pretty.txt | 8 + .../handle_contract_violation.cpp | 26 + .../contracts/backtrace_handler/prettytrace.sh | 30 + gcc/testsuite/g++.dg/contracts/contracts-access1.C | 128 ++ gcc/testsuite/g++.dg/contracts/contracts-assume1.C | 30 + gcc/testsuite/g++.dg/contracts/contracts-assume2.C | 34 + gcc/testsuite/g++.dg/contracts/contracts-assume3.C | 19 + gcc/testsuite/g++.dg/contracts/contracts-assume4.C | 19 + gcc/testsuite/g++.dg/contracts/contracts-assume5.C | 34 + gcc/testsuite/g++.dg/contracts/contracts-assume6.C | 61 + gcc/testsuite/g++.dg/contracts/contracts-comdat1.C | 19 + gcc/testsuite/g++.dg/contracts/contracts-config1.C | 36 + .../g++.dg/contracts/contracts-constexpr1.C | 74 + .../g++.dg/contracts/contracts-constexpr2.C | 58 + .../g++.dg/contracts/contracts-constexpr3.C | 10 + .../g++.dg/contracts/contracts-conversion1.C | 19 + .../g++.dg/contracts/contracts-ctor-dtor1.C | 177 ++ .../g++.dg/contracts/contracts-ctor-dtor2.C | 35 + gcc/testsuite/g++.dg/contracts/contracts-cv1.C | 37 + .../g++.dg/contracts/contracts-deduced1.C | 108 + .../g++.dg/contracts/contracts-deduced2.C | 84 + gcc/testsuite/g++.dg/contracts/contracts-friend1.C | 40 + gcc/testsuite/g++.dg/contracts/contracts-ft1.C | 14 + gcc/testsuite/g++.dg/contracts/contracts-ignore1.C | 30 + gcc/testsuite/g++.dg/contracts/contracts-ignore2.C | 26 + .../g++.dg/contracts/contracts-large-return.C | 15 + .../g++.dg/contracts/contracts-multiline1.C | 19 + .../contracts/contracts-multiple-inheritance1.C | 15 + .../contracts/contracts-multiple-inheritance2.C | 33 + .../g++.dg/contracts/contracts-nested-class1.C | 24 + .../g++.dg/contracts/contracts-nested-class2.C | 40 + gcc/testsuite/g++.dg/contracts/contracts-nocopy1.C | 24 + .../g++.dg/contracts/contracts-override.C | 43 + gcc/testsuite/g++.dg/contracts/contracts-post1.C | 74 + gcc/testsuite/g++.dg/contracts/contracts-post2.C | 13 + gcc/testsuite/g++.dg/contracts/contracts-post3.C | 15 + gcc/testsuite/g++.dg/contracts/contracts-post4.C | 36 + gcc/testsuite/g++.dg/contracts/contracts-post5.C | 19 + gcc/testsuite/g++.dg/contracts/contracts-post6.C | 30 + gcc/testsuite/g++.dg/contracts/contracts-pre1.C | 36 + gcc/testsuite/g++.dg/contracts/contracts-pre10.C | 190 ++ gcc/testsuite/g++.dg/contracts/contracts-pre2.C | 212 ++ gcc/testsuite/g++.dg/contracts/contracts-pre2a1.C | 33 + gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C | 22 + gcc/testsuite/g++.dg/contracts/contracts-pre3.C | 525 +++++ gcc/testsuite/g++.dg/contracts/contracts-pre4.C | 92 + gcc/testsuite/g++.dg/contracts/contracts-pre5.C | 81 + gcc/testsuite/g++.dg/contracts/contracts-pre6.C | 74 + gcc/testsuite/g++.dg/contracts/contracts-pre7.C | 134 ++ gcc/testsuite/g++.dg/contracts/contracts-pre9.C | 146 ++ gcc/testsuite/g++.dg/contracts/contracts-redecl1.C | 149 ++ gcc/testsuite/g++.dg/contracts/contracts-redecl2.C | 149 ++ gcc/testsuite/g++.dg/contracts/contracts-redecl3.C | 195 ++ gcc/testsuite/g++.dg/contracts/contracts-redecl4.C | 56 + gcc/testsuite/g++.dg/contracts/contracts-redecl5.C | 101 + gcc/testsuite/g++.dg/contracts/contracts-redecl6.C | 195 ++ gcc/testsuite/g++.dg/contracts/contracts-redecl7.C | 95 + gcc/testsuite/g++.dg/contracts/contracts-redecl8.C | 64 + .../g++.dg/contracts/contracts-tmpl-attr1.C | 19 + .../g++.dg/contracts/contracts-tmpl-spec1.C | 121 ++ .../g++.dg/contracts/contracts-tmpl-spec2.C | 395 ++++ .../g++.dg/contracts/contracts-tmpl-spec3.C | 45 + gcc/testsuite/g++.dg/contracts/contracts1.C | 49 + gcc/testsuite/g++.dg/contracts/contracts10.C | 73 + gcc/testsuite/g++.dg/contracts/contracts11.C | 103 + gcc/testsuite/g++.dg/contracts/contracts12.C | 15 + gcc/testsuite/g++.dg/contracts/contracts13.C | 51 + gcc/testsuite/g++.dg/contracts/contracts14.C | 58 + gcc/testsuite/g++.dg/contracts/contracts15.C | 56 + gcc/testsuite/g++.dg/contracts/contracts16.C | 34 + gcc/testsuite/g++.dg/contracts/contracts17.C | 35 + gcc/testsuite/g++.dg/contracts/contracts18.C | 15 + gcc/testsuite/g++.dg/contracts/contracts19.C | 19 + gcc/testsuite/g++.dg/contracts/contracts2.C | 13 + gcc/testsuite/g++.dg/contracts/contracts20.C | 11 + gcc/testsuite/g++.dg/contracts/contracts22.C | 32 + gcc/testsuite/g++.dg/contracts/contracts24.C | 15 + gcc/testsuite/g++.dg/contracts/contracts25.C | 57 + gcc/testsuite/g++.dg/contracts/contracts3.C | 13 + gcc/testsuite/g++.dg/contracts/contracts35.C | 47 + gcc/testsuite/g++.dg/contracts/contracts4.C | 11 + gcc/testsuite/g++.dg/contracts/contracts5.C | 13 + gcc/testsuite/g++.dg/contracts/contracts6.C | 11 + gcc/testsuite/g++.dg/contracts/contracts7.C | 14 + gcc/testsuite/g++.dg/contracts/contracts8.C | 43 + gcc/testsuite/g++.dg/contracts/contracts9.C | 45 + .../contracts/except_preload_handler/Makefile | 13 + .../g++.dg/contracts/except_preload_handler/README | 13 + .../except_preload_handler/assert_fail.cpp | 20 + .../handle_contract_violation.cpp | 14 + .../contracts/noexcept_preload_handler/Makefile | 13 + .../contracts/noexcept_preload_handler/README | 15 + .../noexcept_preload_handler/assert_fail.cpp | 20 + .../handle_contract_violation.cpp | 14 + .../g++.dg/contracts/preload_handler/Makefile | 13 + .../g++.dg/contracts/preload_handler/README | 2 + .../contracts/preload_handler/assert_fail.cpp | 7 + .../preload_handler/handle_contract_violation.cpp | 15 + .../contracts/preload_nocontinue_handler/Makefile | 23 + .../contracts/preload_nocontinue_handler/README | 23 + .../preload_nocontinue_handler/assert_fail.cpp | 10 + .../handle_contract_violation.cpp | 13 + .../preload_nocontinue_handler/nocontinue.cpp | 19 + gcc/testsuite/g++.dg/modules/contracts-1_a.C | 46 + gcc/testsuite/g++.dg/modules/contracts-1_b.C | 33 + gcc/testsuite/g++.dg/modules/contracts-2_a.C | 49 + gcc/testsuite/g++.dg/modules/contracts-2_b.C | 35 + gcc/testsuite/g++.dg/modules/contracts-2_c.C | 22 + gcc/testsuite/g++.dg/modules/contracts-3_a.C | 41 + gcc/testsuite/g++.dg/modules/contracts-3_b.C | 35 + gcc/testsuite/g++.dg/modules/contracts-4_a.C | 28 + gcc/testsuite/g++.dg/modules/contracts-4_b.C | 8 + gcc/testsuite/g++.dg/modules/contracts-4_c.C | 9 + gcc/testsuite/g++.dg/modules/contracts-4_d.C | 22 + .../g++.dg/modules/contracts-tpl-friend-1_a.C | 17 + ...tpl-friend-1_b.C => contracts-tpl-friend-1_b.C} | 4 +- gcc/testsuite/g++.dg/modules/modules.exp | 9 +- gcc/testsuite/lib/g++.exp | 4 + libstdc++-v3/acinclude.m4 | 2 +- libstdc++-v3/configure | 16 +- libstdc++-v3/include/Makefile.am | 1 + libstdc++-v3/include/Makefile.in | 1 + libstdc++-v3/include/experimental/contract | 81 + libstdc++-v3/src/Makefile.am | 3 +- libstdc++-v3/src/Makefile.in | 6 +- .../src/{filesystem => experimental}/Makefile.am | 36 +- .../src/{filesystem => experimental}/Makefile.in | 53 +- .../del_opv.cc => src/experimental/contract.cc} | 27 +- 157 files changed, 10207 insertions(+), 141 deletions(-) create mode 100644 gcc/cp/contracts.cc create mode 100644 gcc/cp/contracts.h create mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/Makefile create mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/README create mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/assert_fail.cpp create mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/example_out.txt create mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/example_pretty.txt create mode 100644 gcc/testsuite/g++.dg/contracts/backtrace_handler/handle_contrac [...] create mode 100755 gcc/testsuite/g++.dg/contracts/backtrace_handler/prettytrace.sh create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-access1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume3.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume4.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume5.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-assume6.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-comdat1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-config1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-constexpr1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-constexpr2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-constexpr3.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-conversion1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ctor-dtor2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-cv1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-deduced1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-deduced2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-friend1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ft1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ignore1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-ignore2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-large-return.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-multiline1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-multiple-inheritance2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-nested-class1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-nested-class2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-nocopy1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-override.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post3.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post4.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post5.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-post6.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre10.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre2a1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre2a2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre3.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre4.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre5.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre6.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre7.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-pre9.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl3.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl4.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl5.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl6.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl7.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-redecl8.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-attr1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts-tmpl-spec3.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts1.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts10.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts11.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts12.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts13.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts14.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts15.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts16.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts17.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts18.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts19.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts2.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts20.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts22.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts24.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts25.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts3.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts35.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts4.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts5.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts6.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts7.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts8.C create mode 100644 gcc/testsuite/g++.dg/contracts/contracts9.C create mode 100644 gcc/testsuite/g++.dg/contracts/except_preload_handler/Makefile create mode 100644 gcc/testsuite/g++.dg/contracts/except_preload_handler/README create mode 100644 gcc/testsuite/g++.dg/contracts/except_preload_handler/assert_fail.cpp create mode 100644 gcc/testsuite/g++.dg/contracts/except_preload_handler/handle_co [...] create mode 100644 gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/Makefile create mode 100644 gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/README create mode 100644 gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/assert_ [...] create mode 100644 gcc/testsuite/g++.dg/contracts/noexcept_preload_handler/handle_ [...] create mode 100644 gcc/testsuite/g++.dg/contracts/preload_handler/Makefile create mode 100644 gcc/testsuite/g++.dg/contracts/preload_handler/README create mode 100644 gcc/testsuite/g++.dg/contracts/preload_handler/assert_fail.cpp create mode 100644 gcc/testsuite/g++.dg/contracts/preload_handler/handle_contract_ [...] create mode 100644 gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/Makefile create mode 100644 gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/README create mode 100644 gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/asser [...] create mode 100644 gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/handl [...] create mode 100644 gcc/testsuite/g++.dg/contracts/preload_nocontinue_handler/nocon [...] create mode 100644 gcc/testsuite/g++.dg/modules/contracts-1_a.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-1_b.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-2_a.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-2_b.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-2_c.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-3_a.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-3_b.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_a.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_b.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_c.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-4_d.C create mode 100644 gcc/testsuite/g++.dg/modules/contracts-tpl-friend-1_a.C copy gcc/testsuite/g++.dg/modules/{tpl-friend-1_b.C => contracts-tpl-friend-1_b.C} (69%) create mode 100644 libstdc++-v3/include/experimental/contract copy libstdc++-v3/src/{filesystem => experimental}/Makefile.am (86%) copy libstdc++-v3/src/{filesystem => experimental}/Makefile.in (95%) copy libstdc++-v3/{libsupc++/del_opv.cc => src/experimental/contract.cc} (59%)