We are facing a runtime exception caused by the Type manager in multiple jars.
For example the issue appears in the following maven packages when trying to construct the SPARK callgraph:
This PR relaxes this behavior, by logging a warning message and letting the algorithm continuing with possible decreased precision.
Unfortunately, the paper (https://arxiv.org/pdf/1108.2683.pdf) that introduced the precise points-to algorithm with type information does not explain such corner cases. Hence, a deeper investigation will be needed for better solution.
We are facing a runtime exception caused by the Type manager in multiple jars. For example the issue appears in the following maven packages when trying to construct the SPARK callgraph:
This is caused due to the assumption made for the BitVector representation of the point-to algorithm as documented here: https://github.com/soot-oss/soot/blob/develop/src/main/java/soot/jimple/spark/internal/TypeManager.java#L141 In this special case with cast operation to a type that is a phantom class and the type mask cant be found, Soot throws a runtime exception.
This PR relaxes this behavior, by logging a warning message and letting the algorithm continuing with possible decreased precision.
Unfortunately, the paper (https://arxiv.org/pdf/1108.2683.pdf) that introduced the precise points-to algorithm with type information does not explain such corner cases. Hence, a deeper investigation will be needed for better solution.