From 6c40858f8e8ff07a7ab7fcd633046096ebc12279 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 11 Mar 2002 13:49:26 -0800 Subject: [PATCH] * toplev.c (rest_of_compilation): Don't compile if we've had errors. From-SVN: r50604 --- gcc/ChangeLog | 11 +++++++---- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.old-deja/g++.brendan/crash52.C | 3 +-- gcc/testsuite/g++.old-deja/g++.jason/report.C | 4 ++-- gcc/toplev.c | 7 +++++-- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6273963140b..d6cde40549d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,11 +1,14 @@ +2002-03-11 Richard Henderson + + * toplev.c (rest_of_compilation): Don't compile if we've had errors. + 2002-03-11 Neil Booth * Makefile.in: Update. -doc: - * cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi. + * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi. Update documentation. - * gcc.texi: Include cppopts.texi and cppenv.texi. - * cpp.texi: Include cppopts.texi and cppenv.texi. + * doc/gcc.texi: Include cppopts.texi and cppenv.texi. + * doc/cpp.texi: Include cppopts.texi and cppenv.texi. 2002-03-11 Zack Weinberg diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 87c3e74a21c..d281943304d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2002-03-11 Richard Henderson + + * g++.old-deja/g++.brendan/crash52.C: Remove return warning marker. + * g++.old-deja/g++.jason/report.C: Likewise. + 2002-03-11 Nathan Sidwell * testsuite/g++.old-deja/g++.other/friend9.C: Revert DR 209 changes. diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash52.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash52.C index e8c51e8be2f..b29271b9dd9 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash52.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash52.C @@ -10,5 +10,4 @@ public: A &f(A &a) {// ERROR - new decl.* std::cout << "Blah\n"; -} // ERROR - non-void function - +} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/report.C b/gcc/testsuite/g++.old-deja/g++.jason/report.C index 14bc9d84402..bbc1adaf942 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/report.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/report.C @@ -55,7 +55,7 @@ bar2 baz (X::Y y) bar2 wa [5]; wa[0] = baz(f); undef2 (1); // ERROR - implicit declaration -} // ERROR - non-void +} int ninny () { @@ -70,4 +70,4 @@ int ninny () int darg (char X::*p) { undef3 (1); // ERROR - implicit declaration -} // ERROR - non-void +} diff --git a/gcc/toplev.c b/gcc/toplev.c index 6530adfd0e7..d1f795068f5 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2540,8 +2540,11 @@ rest_of_compilation (decl) purge_hard_subreg_sets (get_insns ()); emit_initial_value_sets (); - /* Don't return yet if -Wreturn-type; we need to do cleanup_cfg. */ - if ((rtl_dump_and_exit || flag_syntax_only) && !warn_return_type) + /* Early return if there were errors. We can run afoul of our + consistency checks, and there's not really much point in fixing them. + Don't return yet if -Wreturn-type; we need to do cleanup_cfg. */ + if (((rtl_dump_and_exit || flag_syntax_only) && !warn_return_type) + || errorcount || sorrycount) goto exit_rest_of_compilation; /* We may have potential sibling or tail recursion sites. Select one -- 2.30.2