fputc ('\t', dump_file);
print_generic_expr (dump_file, stack_vars[j].decl, dump_flags);
fprintf (dump_file, ", offset " HOST_WIDE_INT_PRINT_DEC "\n",
- stack_vars[i].offset);
+ stack_vars[j].offset);
}
}
}
/* Create rtl for each variable based on their location within the
partition. */
for (j = i; j != EOC; j = stack_vars[j].next)
- expand_one_stack_var_at (stack_vars[j].decl,
- stack_vars[j].offset + offset);
+ {
+ gcc_assert (stack_vars[j].offset <= stack_vars[i].size);
+ expand_one_stack_var_at (stack_vars[j].decl,
+ stack_vars[j].offset + offset);
+ }
}
}
add_reg_br_prob_note (last, true_edge->probability);
maybe_dump_rtl_for_tree_stmt (stmt, last);
if (true_edge->goto_locus)
- set_curr_insn_source_location (*true_edge->goto_locus);
+ set_curr_insn_source_location (location_from_locus (true_edge->goto_locus));
false_edge->flags |= EDGE_FALLTHRU;
return NULL;
}
add_reg_br_prob_note (last, false_edge->probability);
maybe_dump_rtl_for_tree_stmt (stmt, last);
if (false_edge->goto_locus)
- set_curr_insn_source_location (*false_edge->goto_locus);
+ set_curr_insn_source_location (location_from_locus (false_edge->goto_locus));
true_edge->flags |= EDGE_FALLTHRU;
return NULL;
}
maybe_dump_rtl_for_tree_stmt (stmt, last2);
if (false_edge->goto_locus)
- set_curr_insn_source_location (*false_edge->goto_locus);
+ set_curr_insn_source_location (location_from_locus (false_edge->goto_locus));
return new_bb;
}
{
emit_jump (label_rtx_for_bb (e->dest));
if (e->goto_locus)
- set_curr_insn_source_location (*e->goto_locus);
+ set_curr_insn_source_location (location_from_locus (e->goto_locus));
e->flags &= ~EDGE_FALLTHRU;
}
if (warn_stack_protect)
{
if (current_function_calls_alloca)
- warning (0, "not protecting local variables: variable length buffer");
+ warning (OPT_Wstack_protector,
+ "not protecting local variables: variable length buffer");
if (has_short_buffer && !cfun->stack_protect_guard)
- warning (0, "not protecting function: no buffer at least %d bytes long",
+ warning (OPT_Wstack_protector,
+ "not protecting function: no buffer at least %d bytes long",
(int) PARAM_VALUE (PARAM_SSP_BUFFER_SIZE));
}