Actions
Bug #7220
closedProblem with usage of high indeces in the right part of assignment
Start date:
05/18/2016
Due date:
% Done:
100%
Estimated time:
Detected in build:
svn
Platform:
Published in build:
2.3.39
Description
Such an assignment will cause Null pointer exception
M[shifted_addr<60..0> + 1] = temp_qword<127..64>;
If the data from 127-64 bits is first copied into some DWORD var, no exception will be thrown.
java.lang.NullPointerException at ru.ispras.microtesk.translator.nml.ir.expr.Expr.compareNodes(Expr.java:120) at ru.ispras.microtesk.translator.nml.ir.expr.Expr.equals(Expr.java:99) at ru.ispras.microtesk.translator.nml.ir.expr.LocationAtom$Bitfield.equals(LocationAtom.java:158) at ru.ispras.microtesk.translator.nml.ir.expr.LocationAtom.equals(LocationAtom.java:285) at ru.ispras.microtesk.translator.nml.ir.primitive.PrimitiveFactory$MemoryAccessDetector.isLoadTarget(PrimitiveFactory.java:361) at ru.ispras.microtesk.translator.nml.ir.primitive.PrimitiveFactory$MemoryAccessDetector.getMemoryAccessStatus(PrimitiveFactory.java:391) at ru.ispras.microtesk.translator.nml.ir.primitive.PrimitiveFactory$MemoryAccessDetector.getMemoryAccessStatus(PrimitiveFactory.java:473) at ru.ispras.microtesk.translator.nml.ir.primitive.PrimitiveFactory$MemoryAccessDetector.getMemoryAccessStatus(PrimitiveFactory.java:404) at ru.ispras.microtesk.translator.nml.ir.primitive.PrimitiveFactory$MemoryAccessDetector.getMemoryAccessStatus(PrimitiveFactory.java:375) at ru.ispras.microtesk.translator.nml.ir.primitive.PrimitiveFactory$MemoryAccessDetector.access$000(PrimitiveFactory.java:280) at ru.ispras.microtesk.translator.nml.ir.primitive.PrimitiveFactory.createOp(PrimitiveFactory.java:96) at ru.ispras.microtesk.translator.nml.grammar.NmlTreeWalker.opSpecPart(NmlTreeWalker.java:1567) at ru.ispras.microtesk.translator.nml.grammar.NmlTreeWalker.opDef(NmlTreeWalker.java:1476) at ru.ispras.microtesk.translator.nml.grammar.NmlTreeWalker.procSpec(NmlTreeWalker.java:394) at ru.ispras.microtesk.translator.nml.grammar.NmlTreeWalker.startRule(NmlTreeWalker.java:231) at ru.ispras.microtesk.translator.nml.NmlTranslator.startParserAndWalker(NmlTranslator.java:126) at ru.ispras.microtesk.translator.nml.NmlTranslator.start(NmlTranslator.java:160) at ru.ispras.microtesk.translator.Translator.start(Translator.java:103) at ru.ispras.microtesk.MicroTESK.translate(MicroTESK.java:144) at ru.ispras.microtesk.MicroTESK.main(MicroTESK.java:75)
Actions