Project

General

Profile

Actions

Bug #7220

closed

Problem with usage of high indeces in the right part of assignment

Added by Mikhail Chupilko over 8 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Andrei Tatarnikov
Category:
-
Target version:
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

Also available in: Atom PDF