aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c14
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