recent toplev.c changes break eh

Mark Mitchell mark@codesourcery.com
Mon Apr 26 15:29:00 GMT 1999


>>>>> "Per" == Per Bothner <bothner@cygnus.com> writes:

    Per> The following change is badly broken:

    Per> This breaks things badly, because this functions called
    Per> *before* output_exception_table.  Before the re-write, the
    Per> cancel was done *after* the output_exception_table.

    Per> This makes the Java front-end unusable.

Well, not *that* badly.  Here's a patch which should restore the
behavior you desired.  Please verify this, and check in the patch,
assuming it works.  It can go in under the "obvious fix" rule, since
the effect of this patch will be to make things exactly as they were
before the change, which was my original intent.  All I wanted to do
was to split out a function or two for the C++ front-end.

BTW, it would have been helpful if a) you had provided a test-case and
b) that test-case had been in some test-suite.  I ran the tests before
check-in, and did not notice any failures.  I would have expected
making the Java front-end unusable would have resulted in some failure
somewhere.  (Did I miss the test failure?  That's possible, too.)

-- 
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

Mon Apr 26 15:27:33 1999  Mark Mitchell  <mark@codesourcery.com>

	* toplev.c (compile_file): Move call to check_global_declarations
	after output_exception_table to restore behavior as it was before
	1999-04-22 change.

Index: toplev.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/toplev.c,v
retrieving revision 1.180
diff -u -p -r1.180 toplev.c
--- toplev.c	1999/04/26 00:07:58	1.180
+++ toplev.c	1999/04/26 22:23:59
@@ -3284,7 +3284,6 @@ compile_file (name)
       vec[len - i - 1] = decl;
 
     wrapup_global_declarations (vec, len);
-    check_global_declarations (vec, len);
 
     /* This must occur after the loop to output deferred functions.  Else
        the profiler initializer would not be emitted if all the functions
@@ -3299,6 +3298,8 @@ compile_file (name)
        the exception table.  */
 
     output_exception_table ();
+
+    check_global_declarations (vec, len);
   }
 
   /* Write out any pending weak symbol declarations.  */


More information about the Gcc-bugs mailing list