SourceLineAnnotation loopBottom = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, bb.from); int loopBottomLine = loopBottom.getStartLine(); SourceLineAnnotation loopTop = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, bb.to); int loopTopLine = loopTop.getStartLine(); BugInstance bug = new BugInstance(this, "IL_INFINITE_LOOP", HIGH_PRIORITY).addClassAndMethod(this) if (reg0 >= 0 && fcb.item0.getConstant() == null) { reg0Invariant = !isRegModified(reg0, myBackwardsReach, bb.from); SourceLineAnnotation lastChange = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, constantSince(fcb.item0)); int lastChangeLine = lastChange.getEndLine(); SourceLineAnnotation lastChange = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, constantSince(fcb.item1)); int lastChangeLine = lastChange.getEndLine();
SourceLineAnnotation loopBottom = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, bb.from); int loopBottomLine = loopBottom.getStartLine(); SourceLineAnnotation loopTop = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, bb.to); int loopTopLine = loopTop.getStartLine(); BugInstance bug = new BugInstance(this, "IL_INFINITE_LOOP", HIGH_PRIORITY).addClassAndMethod(this) if (reg0 >= 0 && fcb.item0.getConstant() == null) { reg0Invariant = !isRegModified(reg0, myBackwardsReach, bb.from); SourceLineAnnotation lastChange = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, constantSince(fcb.item0)); int lastChangeLine = lastChange.getEndLine(); SourceLineAnnotation lastChange = SourceLineAnnotation.fromVisitedInstruction(getClassContext(), this, constantSince(fcb.item1)); int lastChangeLine = lastChange.getEndLine();