projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
adding assertion to prevent recursive compound types
[libfirm]
/
ir
/
common
/
firmwalk.c
diff --git
a/ir/common/firmwalk.c
b/ir/common/firmwalk.c
index
efb05ad
..
30019c0
100644
(file)
--- a/
ir/common/firmwalk.c
+++ b/
ir/common/firmwalk.c
@@
-11,10
+11,12
@@
*/
#ifdef HAVE_CONFIG_H
*/
#ifdef HAVE_CONFIG_H
-# include
<config.h>
+# include
"config.h"
#endif
#endif
-#include <string.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif
#include "firmwalk.h"
#include "firmwalk.h"
@@
-469,7
+471,7
@@
void firm_walk(firm_walk_interface *wif)
/* call block as prefix ir node */
if ((wif->do_node) &&
/* call block as prefix ir node */
if ((wif->do_node) &&
- (wif->flags &
FW_DUMP_BLOCK_AS_IRN & !FW_DUMP_IRN_IN_PREFIX
))
+ (wif->flags &
(FW_DUMP_BLOCK_AS_IRN | FW_DUMP_IRN_IN_PREFIX)
))
wif->do_node(block, wif->env);
/* do ir nodes in prefix or postfix order? */
wif->do_node(block, wif->env);
/* do ir nodes in prefix or postfix order? */
@@
-490,18
+492,28
@@
void firm_walk(firm_walk_interface *wif)
}
/* call block as postfix ir node */
if ((wif->do_node) &&
}
/* call block as postfix ir node */
if ((wif->do_node) &&
- (wif->flags & (FW_DUMP_BLOCK_AS_IRN | FW_DUMP_IRN_IN_PREFIX)))
+ ((wif->flags & (FW_DUMP_BLOCK_AS_IRN | FW_DUMP_IRN_IN_PREFIX))
+ == FW_DUMP_BLOCK_AS_IRN))
wif->do_node(block, wif->env);
/* wall over all block's ir nodes nested end =============== */
wif->do_node(block, wif->env);
/* wall over all block's ir nodes nested end =============== */
- if (wif->do_block_finalize) wif->do_block_finalize(current_ir_graph, wif->env);
+ if(wif->do_block_post)
+ wif->do_block_post(block, wif->env);
+
} /* for each block */
} /* for each block */
+ if (wif->do_block_finalize)
+ wif->do_block_finalize(current_ir_graph, wif->env);
+
/* walk over all irg's block nested end ====================== */
/* walk over all irg's block nested end ====================== */
+ if(wif->do_graph_post)
+ wif->do_graph_post(current_ir_graph, wif->env);
} /* for each ir graph irg */
} /* for each ir graph irg */
- if (wif->do_graph_finalize) wif->do_graph_finalize(wif->env);
+
+ if(wif->do_graph_finalize)
+ wif->do_graph_finalize(wif->env);
/** ### ToDo: Dump const_code_irg ?? No! Dump const code with entities, types etc. */
/** ### ToDo: Dump const_code_irg ?? No! Dump const code with entities, types etc. */