Restore an assignment deleted in commit 789f79b
.
Because of the accidental deletion, mcgg on my machine followed a garbage pointer, and never wrote calls to emit_fragment. A wrong call to `data->emit_reg(0, 0)` instead of the correct `data->emit_fragment(0)` caused PowerPC mcg to emit an empty string instead of `8(fp)`, causing a syntax error in PowerPC as. The wrong `data->emit_reg(0, 0)` called the function emit_reg() in mach/proto/mcg/pass_instructionselection.c, but that function unfortunately has `if (vreg) { ... }`. The call had vreg == NULL because the fragment wasn't a vreg, but emit_reg() ignored the problem and emit nothing.
This commit is contained in:
parent
8c80fa7334
commit
0fc0faef08
|
@ -1280,6 +1280,7 @@ static void emitinsndata(Rule rules)
|
||||||
|
|
||||||
if (!find_child_index(r->pattern, label, &index, &node))
|
if (!find_child_index(r->pattern, label, &index, &node))
|
||||||
label_not_found(r, label);
|
label_not_found(r, label);
|
||||||
|
nt = node->op;
|
||||||
if (nt->kind == NONTERM)
|
if (nt->kind == NONTERM)
|
||||||
{
|
{
|
||||||
if (nt->is_fragment)
|
if (nt->is_fragment)
|
||||||
|
|
Loading…
Reference in a new issue