From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1851) id 437393858401; Mon, 28 Feb 2022 11:04:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 437393858401 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Martin Liska To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/marxin/heads/PR104648-fix-checking-ICE)] Fix error recovery in toplev::finalize. X-Act-Checkin: gcc X-Git-Author: Martin Liska X-Git-Refname: refs/users/marxin/heads/PR104648-fix-checking-ICE X-Git-Oldrev: f485b0ed7d06482d2f212ff0d9f5519a4f2c9a15 X-Git-Newrev: 2e0b3b79bddfb1941bb05fbc52778ea791034add Message-Id: <20220228110449.437393858401@sourceware.org> Date: Mon, 28 Feb 2022 11:04:49 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Feb 2022 11:04:49 -0000 https://gcc.gnu.org/g:2e0b3b79bddfb1941bb05fbc52778ea791034add commit 2e0b3b79bddfb1941bb05fbc52778ea791034add Author: Martin Liska Date: Mon Feb 28 11:58:01 2022 +0100 Fix error recovery in toplev::finalize. PR ipa/104648 gcc/ChangeLog: * main.cc (main): Use flag_checking instead of CHECKING_P and run toplev::finalize only if there is not error seen. gcc/testsuite/ChangeLog: * g++.dg/pr104648.C: New test. Diff: --- gcc/main.cc | 6 +++--- gcc/testsuite/g++.dg/pr104648.C | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/main.cc b/gcc/main.cc index f9dd6b2af58..4ba28b7de53 100644 --- a/gcc/main.cc +++ b/gcc/main.cc @@ -37,9 +37,9 @@ main (int argc, char **argv) true /* init_signals */); int r = toplev.main (argc, argv); -#if CHECKING_P - toplev.finalize (); -#endif + + if (flag_checking && !seen_error ()) + toplev.finalize (); return r; } diff --git a/gcc/testsuite/g++.dg/pr104648.C b/gcc/testsuite/g++.dg/pr104648.C new file mode 100644 index 00000000000..b8b7c2864cf --- /dev/null +++ b/gcc/testsuite/g++.dg/pr104648.C @@ -0,0 +1,9 @@ +// { dg-do compile } +// { dg-options "-fvtable-verify=preinit" } + +struct A {}; +struct B : virtual A +{ + B () {}; + B () {}; /* { dg-error "cannot be overloaded with" } */ +};