protected override void DoEmit (EmitContext ec)
{
decl.Variable.CreateBuilder (ec);
decl.Initializer.Emit (ec);
if (decl.Declarators != null) {
foreach (var d in decl.Declarators) {
d.Variable.CreateBuilder (ec);
d.Initializer.Emit (ec);
}
}
statement.Emit (ec);
if (has_ret)
return;
//
// Clear the pinned variable
//
((Emitter) decl.Initializer).EmitExit (ec);
if (decl.Declarators != null) {
foreach (var d in decl.Declarators) {
((Emitter)d.Initializer).EmitExit (ec);
}
}
}