public override StatementList AllocObject(IVariable var, InstructionTranslator instTranslator) { var freshVariable = instTranslator.GetFreshVariable(Helpers.GetBoogieType(var)); var stmts = new StatementList(); stmts.Add(dispatcher.AllocObject(freshVariable)); stmts.Add(bg.VariableAssignment(var, freshVariable)); return(stmts); }
public override StatementList CallReadArrayElement(IVariable resultVariable, Expression array, Expression index, InstructionTranslator instructionTranslator) { StatementList stmts = new StatementList(); BoogieVariable boogieResVar = null; if (resultVariable != null) { boogieResVar = instructionTranslator.GetFreshVariable(Helpers.GetBoogieType(resultVariable)); } stmts.Add(dispatcher.CallReadArrayElement(boogieResVar, array, index)); if (resultVariable != null) { stmts.Add(dispatcher.WriteAddr(dispatcher.AddressOf(resultVariable), boogieResVar)); } return(stmts); }