diff options
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 0babab79bb8..c3702ef46de 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -807,6 +807,7 @@ static bool execute_one_pass (struct tree_opt_pass *pass) { bool initializing_dump; + unsigned int todo_after = 0; /* See if we're supposed to run this pass. */ if (pass->gate && !pass->gate ()) @@ -858,7 +859,7 @@ execute_one_pass (struct tree_opt_pass *pass) /* Do it! */ if (pass->execute) { - pass->execute (); + todo_after = pass->execute (); last_verified = 0; } @@ -880,7 +881,7 @@ execute_one_pass (struct tree_opt_pass *pass) } /* Run post-pass cleanup and verification. */ - execute_todo (pass->todo_flags_finish); + execute_todo (todo_after | pass->todo_flags_finish); /* Flush and close dump file. */ if (dump_file_name) |