[Fb-contrib-commit] SF.net SVN: fb-contrib: [999] trunk/fb-contrib/src/com/mebigfatguy/ fbcontrib/
Brought to you by:
dbrosius
From: <dbr...@us...> - 2008-03-14 05:34:01
|
Revision: 999 http://fb-contrib.svn.sourceforge.net/fb-contrib/?rev=999&view=rev Author: dbrosius Date: 2008-03-13 22:34:06 -0700 (Thu, 13 Mar 2008) Log Message: ----------- Fix for [ 1913557 ] FalsePositive BAS, IINC needs to count as a store and a load Modified Paths: -------------- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java Modified: trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java =================================================================== --- trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2008-03-14 04:58:39 UTC (rev 998) +++ trunk/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedAssignmentScope.java 2008-03-14 05:34:06 UTC (rev 999) @@ -160,6 +160,32 @@ else ignoreRegs.add(iReg); } + } else if (seen == IINC) { + int reg = getRegisterOperand(); + Integer iReg = Integer14.valueOf(reg); + if (!ignoreRegs.contains(iReg)) { + ScopeBlock sb = findScopeBlock(rootScopeBlock, getPC()); + if (sb != null) + sb.addLoad(reg, getPC()); + else + ignoreRegs.add(iReg); + } + int pc = getPC(); + if (catchHandlers.contains(Integer14.valueOf(pc))) + ignoreRegs.add(iReg); + else if (sawNull) + ignoreRegs.add(iReg); + + if (!ignoreRegs.contains(iReg)) { + ScopeBlock sb = findScopeBlock(rootScopeBlock, pc); + if (sb != null) { + sb.addStore(reg, pc); + if (sawDup) + sb.addLoad(reg, pc); + } + else + ignoreRegs.add(iReg); + } } else if ((seen == ALOAD) || (seen == ILOAD) || (seen == LLOAD) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |