[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Soot typing failure



Hmmm.

I was wrong I think. See below.

Etienne Gagnon wrote:
The constraint checker "Is Right(TM)". Your problem is probably that typing is applied after some optimizations. IT SHOULD NOT. I DISAGREE with the proposed patch that Ondrej happily applied.

I am not so sure anymore. After checking my assumptions in ConstrtaintCollector, I have to admit that the patch makes sense.


> SOOT PROBLEM #1 > =============== > > PackManager.v().getTransform( "jb.a" ).apply( b ); > PackManager.v().getTransform( "jb.ule" ).apply( b ); > > is applied BEFORE typing in soot-2.0.1/soot/src/soot/JimpleBodyPack.java


Hmmm. After reading the manual about these, they seem not to be destructing valuable info for typing. We can leave them as-is. But, remember that typing depends on having enough local variables to be able to assign different types to different locals. Merging locals too early can result in type inference failures.


> SOOT PROBLEM #2 > =============== > > In the code: >... > of soot-2.0.1/soot/src/soot/JimpleBodyPack.java, verification of typing > failure is done EVEN WHEN typing is disabled! (e.g. -p jb.tr > enabled:false )


This still looks as a problem to me.


Etienne

--
Etienne M. Gagnon, Ph.D.             http://www.info.uqam.ca/~egagnon/
SableVM:                                       http://www.sablevm.org/
SableCC:                                       http://www.sablecc.org/