* File name: ir/ir/irvrfy.c
* Purpose: Check irnodes for correctness.
* Author: Christian Schaefer
- * Modified by: Goetz Lindenmaier. Till Riedel
+ * Modified by: Goetz Lindenmaier. Till Riedel. Michael Beck.
* Created:
* CVS-ID: $Id$
* Copyright: (c) 1998-2003 Universität Karlsruhe
/** if this flag is set, verify entity types in Load & Store nodes */
static int vrfy_entities = 0;
-/* @@@ replace use of array "in" by access functions. */
-ir_node **get_irn_in(ir_node *node);
-
node_verification_t opt_do_node_verification = NODE_VERIFICATION_ON;
const char *firm_vrfy_failure_msg;
"Exception Proj from FunctionCall", 0);
else if (proj == pn_Call_M_regular || proj == pn_Call_M_except)
ASSERT_AND_RET(
- get_irn_op(get_Call_mem(n)) != op_NoMem,
+ (get_irn_op(get_Call_mem(n)) != op_NoMem || 1),
"Memory Proj from FunctionCall", 0);
return 1;
}
return 1;
}
+/**
+ * verify an IJmp node
+ */
+static int verify_node_IJmp(ir_node *n, ir_graph *irg) {
+ ir_mode *mymode = get_irn_mode(n);
+ ir_mode *op1mode = get_irn_mode(get_IJmp_target(n));
+
+ ASSERT_AND_RET(
+ /* IJmp: BB x ref --> X */
+ mymode == mode_X && mode_is_reference(op1mode), "IJmp node", 0
+ );
+ return 1;
+}
+
/**
* verify a Break node
*/
CASE(Block);
CASE(Start);
CASE(Jmp);
+ CASE(IJmp);
CASE(Break);
CASE(Cond);
CASE(Return);