Closed hernanponcedeleon closed 2 years ago
This problem is triggered because of new code related to the PR that introduced the Dependency
class (i.e. the dependency analysis).
Since then, the BasicRegRelation.getSMTVar
method calls task.getProgramEncoder().dependencyEdge(...)
, so there is a dependency on task.getProgramEncoder
.
The problem now is this:
RelationAnalysis
wrt. the baselineModel
and not the original memory model.RelationAnalysis
doesn't take a Wmm
as input but a whole VerificationTask
, the Refinement code generates a new VerificationTask
object with the baselineModel
and passes that one to the RelationAnalysis
.VerificationTask
object has no encoders associated, so all its Encoders
are null
.baselineModel
with NO_OOTA
, there is the dep
-relation that needs to get encoded, which in particular involves idd
(~BasigRegRelation
)getSMTVar
method call will try to access task.getProgramEncoder()
, resulting in a NullPointerException
All this happens because of a combination of hacky code and unfortunate dependencies (the dependency on ProgramEncoder
should not be there IMO). I will create another hacky fix for now, by giving the newly created VerificationTask
the same ProgramEncoder
. Eventually, we need to fix this mess properly though.
Fixed in #281
The following command raise an exception
while this one does not