diff options
author | Richard Stallman <rms@gnu.org> | 1992-06-22 02:02:28 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-06-22 02:02:28 +0000 |
commit | ab40ad2b6ad5769c8bcb4741c47b93622d1a8a09 (patch) | |
tree | bf1819d4928a2b99055cc89e9dae5efea06297fd /gcc/toplev.c | |
parent | 4d06f14570ebec47f666a03bd7f67b832d1e7f0f (diff) | |
download | gcc-ab40ad2b6ad5769c8bcb4741c47b93622d1a8a09.zip gcc-ab40ad2b6ad5769c8bcb4741c47b93622d1a8a09.tar.gz gcc-ab40ad2b6ad5769c8bcb4741c47b93622d1a8a09.tar.bz2 |
*** empty log message ***
From-SVN: r1231
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r-- | gcc/toplev.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index a814984..a4da795 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1977,6 +1977,7 @@ rest_of_compilation (decl) to be restored after we finish compiling the function (for use when compiling inline calls to this function). */ tree saved_block_tree = 0; + int failure = 0; /* If we are reconsidering an inline function at the end of compilation, skip the stuff for making it inline. */ @@ -2343,10 +2344,10 @@ rest_of_compilation (decl) TIMEVAR (global_alloc_time, { if (!obey_regdecls) - global_alloc (global_reg_dump ? global_reg_dump_file : 0); + failure = global_alloc (global_reg_dump ? global_reg_dump_file : 0); else - reload (insns, 0, - global_reg_dump ? global_reg_dump_file : 0); + failure = reload (insns, 0, + global_reg_dump ? global_reg_dump_file : 0); }); if (global_reg_dump) @@ -2357,6 +2358,9 @@ rest_of_compilation (decl) fflush (global_reg_dump_file); }); + if (failure) + goto exit_rest_of_compilation; + reload_completed = 1; if (optimize > 0 && flag_schedule_insns_after_reload) @@ -2386,7 +2390,7 @@ rest_of_compilation (decl) #ifdef LEAF_REGISTERS leaf_function = 0; if (optimize > 0 && only_leaf_regs_used () && leaf_function_p ()) - leaf_function = 1; + leaf_function = 1; #endif /* One more attempt to remove jumps to .+1 |