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:
George Koehler 2017-11-07 23:52:52 -05:00
parent 8c80fa7334
commit 0fc0faef08

View file

@ -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)