{
assert(node && node->kind == k_ir_node);
#ifdef DEBUG_libfirm
- /* assert(node->out_valid); */
+ assert(node->out_valid);
#endif /* defined DEBUG_libfirm */
/* we misuse the first for the size info of the out array */
return node->out[0].pos;
{
assert(pos >= 0 && pos < get_irn_n_outs(def));
#ifdef DEBUG_libfirm
- /* assert(def->out_valid); */
+ assert(def->out_valid);
#endif /* defined DEBUG_libfirm */
return def->out[pos+1].use;
}
{
assert(pos >= 0 && pos < get_irn_n_outs(def));
#ifdef DEBUG_libfirm
- /* assert(def->out_valid); */
+ assert(def->out_valid);
#endif /* defined DEBUG_libfirm */
*in_pos = def->out[pos+1].pos;
return def->out[pos+1].use;
assert(def && use);
assert(pos >= 0 && pos < get_irn_n_outs(def));
#ifdef DEBUG_libfirm
- def->out_valid = 1; /* assume that this function is used correctly */
+ assert(def->out_valid);
#endif /* defined DEBUG_libfirm */
def->out[pos+1].use = use;
def->out[pos+1].pos = in_pos;
#endif /* defined DEBUG_libfirm */
for (i = 1; i <= bl->out[0].pos; ++i) {
ir_node *succ = bl->out[i].use;
- if (get_irn_mode(succ) == mode_X && !is_End(succ))
+ if (get_irn_mode(succ) == mode_X && !is_End(succ) && !is_Bad(succ))
n_cfg_outs += succ->out[0].pos;
}
return n_cfg_outs;
for (i = 1; i <= bl->out[0].pos; ++i) {
ir_node *succ = bl->out[i].use;
if (get_irn_mode(succ) == mode_X) {
-
+ if (is_Bad(succ))
+ continue;
if (is_End(succ)) {
/* ignore End if we are in the Endblock */
if (get_nodes_block(succ) == bl)
#endif /* defined DEBUG_libfirm */
for (i = 1; i <= bl->out[0].pos; ++i) {
ir_node *succ = bl->out[i].use;
- if (get_irn_mode(succ) == mode_X && !is_End(succ)) {
+ if (get_irn_mode(succ) == mode_X && !is_End(succ) && !is_Bad(succ)) {
int n_outs = succ->out[0].pos;
if (pos < n_outs)
return succ->out[pos + 1].use;
for (i = 1; i <= bl->out[0].pos; ++i) {
ir_node *succ = bl->out[i].use;
if (get_irn_mode(succ) == mode_X) {
+ if (is_Bad(succ))
+ continue;
if (is_End(succ)) {
ir_node *end_bl = get_nodes_block(succ);
if (end_bl == bl) {