Tread immediate move statements similarly to assignments.

They're used for structure assignment in near data space. This fixes the
bogus uninitialized warnings on fully initialized structs.
This commit is contained in:
Bill Currie 2012-11-24 16:47:44 +09:00
parent 7f229b7682
commit 40c97f9570
1 changed files with 6 additions and 2 deletions

View File

@ -762,8 +762,12 @@ flow_analyze_statement (statement_t *s, set_t *use, set_t *def, set_t *kill,
case st_move: case st_move:
flow_add_op_var (use, s->opa); flow_add_op_var (use, s->opa);
flow_add_op_var (use, s->opb); flow_add_op_var (use, s->opb);
if (s->opc) if (!strcmp (s->opcode, "<MOVE>")) {
flow_add_op_var (use, s->opc); flow_add_op_var (def, s->opc);
} else {
if (s->opc)
flow_add_op_var (use, s->opc);
}
if (kill) { if (kill) {
//FIXME set of everything //FIXME set of everything
} }