projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CVS:
[libfirm]
/
ir
/
ir
/
irnode.c
diff --git
a/ir/ir/irnode.c
b/ir/ir/irnode.c
index
f3b5277
..
a9fccc2
100644
(file)
--- a/
ir/ir/irnode.c
+++ b/
ir/ir/irnode.c
@@
-8,6
+8,7
@@
#include "irnode_t.h"
#include "irgraph_t.h"
#include "ident_t.h"
#include "irnode_t.h"
#include "irgraph_t.h"
#include "ident_t.h"
+#include "irmode_t.h"
#include "array.h"
#ifdef DEBUG_libfirm
#include "array.h"
#ifdef DEBUG_libfirm
@@
-219,7
+220,7
@@
get_irn_modecode (ir_node *node)
inline ident *
inline ident *
-get_irn_mode
name
(ir_node *node)
+get_irn_mode
ident
(ir_node *node)
{
assert(node);
return node->mode->name;
{
assert(node);
return node->mode->name;
@@
-1535,7
+1536,7
@@
get_Alloc_size (ir_node *node) {
}
inline void
}
inline void
-set_All
co
_size (ir_node *node, ir_node *size) {
+set_All
oc
_size (ir_node *node, ir_node *size) {
assert (node->op == op_Alloc);
set_irn_n(node, 1, size);
}
assert (node->op == op_Alloc);
set_irn_n(node, 1, size);
}
@@
-1730,7
+1731,10
@@
skip_nop (ir_node *node) {
/* don't assert node !!! */
if (node && (node->op == op_Id) && (node != get_Id_pred(node))) {
/* don't assert node !!! */
if (node && (node->op == op_Id) && (node != get_Id_pred(node))) {
- return get_Id_pred(node);
+ /* Don't use get_Id_pred: We get into an endless loop for
+ self-referencing Ids. */
+ assert (get_irn_arity (node) > 0);
+ return node->in[0+1];
} else {
return node;
}
} else {
return node;
}