diff options
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index e896181..7b6deee 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -1555,8 +1555,15 @@ pass_manager::pass_manager (context *ctxt) /* Build the tree of passes. */ -#define INSERT_PASSES_AFTER(PASS) \ - p = &(PASS); +#define INSERT_PASSES_AFTER(PASS) \ + { \ + opt_pass **p_start; \ + p_start = p = &(PASS); + +#define TERMINATE_PASS_LIST(PASS) \ + gcc_assert (p_start == &PASS); \ + *p = NULL; \ + } #define PUSH_INSERT_PASSES_WITHIN(PASS) \ { \ @@ -1584,9 +1591,6 @@ pass_manager::pass_manager (context *ctxt) PASS ## _ ## NUM->set_pass_param (0, ARG); \ } while (0) -#define TERMINATE_PASS_LIST() \ - *p = NULL; - #include "pass-instances.def" #undef INSERT_PASSES_AFTER |