if (pc != NA) { IMethod m = ir.getMethod(); int newPosition = m.getLineNumber(pc); if (newPosition != -1) { position = newPosition;
if (pc != NA) { IMethod m = ir.getMethod(); int newPosition = m.getLineNumber(pc); if (newPosition != -1) { position = newPosition;
if (pc != IrViewer.NA){ try{ sourceLineNumber = method.getLineNumber(pc); IClassLoader loader = method.getDeclaringClass().getClassLoader(); sourceFileName = loader.getSourceFileName(method, pc);
if (pc != IrViewer.NA){ try{ sourceLineNumber = method.getLineNumber(pc); IClassLoader loader = method.getDeclaringClass().getClassLoader(); sourceFileName = loader.getSourceFileName(method, pc);
boolean check(IMethod m, IR ir) { System.err.println(("check for " + variableName + " defined at " + definingLineNumber)); SSAInstruction[] insts = ir.getInstructions(); for (int i = 0; i < insts.length; i++) { if (insts[i] != null) { int ln = m.getLineNumber(i); if (ln == definingLineNumber) { System.err.println((" found " + insts[i] + " at " + ln)); for (int j = 0; j < insts[i].getNumberOfDefs(); j++) { int def = insts[i].getDef(j); System.err.println((" looking at def " + j + ": " + def)); String[] names = ir.getLocalNames(i, def); if (names != null) { for (String name : names) { System.err.println((" looking at name " + name)); if (name.equals(variableName)) { return true; } } } } } } } return false; } }
+ "nor ArrayIndexOutOfBoundsException: " + identifyer + ":" + method.getLineNumber(lastInstruction.iindex), lastInstruction.getExceptionTypes(), matcher1); + "and ArrayIndexOutOfBoundsException: " + identifyer + ":" + method.getLineNumber(lastInstruction.iindex), lastInstruction.getExceptionTypes(), matcher2);
numberOfArrayAccesses++; UnnecessaryCheck unnecessary = analysis.getBoundsCheckNecessary().get(key); collector.checkThat("Unexpected necessity for bounds check in " + identifyer + ":" + method.getLineNumber(key.iindex), unnecessary, matcher);