}   if (IGNORE_DEREF_OF_NONNULL && invDataflow != null && isDerefOfNonNullValue(location, invDataflow.getStartFact(fallThroughPredecessor))) { return;
	public void transferInstruction(InstructionHandle handle,			BasicBlock basicBlock, UnconditionalValueDerefSet fact)			throws DataflowAnalysisException {				// If this is a call to an assertion method,		// change the dataflow value to be TOP.		// We don't want to report future derefs that would		// be guaranteed only if the assertion methods		// returns normally.		if (isAssertion(handle) || handle.getInstruction() instanceof ATHROW) {			makeFactTop(fact);			return;		}		// See if this instruction has a null check.		// If it does, the fall through predecessor will be		// identify itself as the null check.		if (handle != basicBlock.getFirstInstruction()) {			return;		}		BasicBlock fallThroughPredecessor =			cfg.getPredecessorWithEdgeType(basicBlock, EdgeTypes.FALL_THROUGH_EDGE);		if (fallThroughPredecessor == null || !fallThroughPredecessor.isNullCheck()) {			return;		}				// Get the null-checked value		ValueNumberFrame vnaFrame = vnaDataflow.getStartFact(fallThroughPredecessor);		if (!vnaFrame.isValid()) {			// Probably dead code.			// Assume this location can't be reached.			makeFactTop(fact);			return;		}				ValueNumber vn = vnaFrame.getInstance(handle.getInstruction(), methodGen.getConstantPool()); 		Location location = new Location(handle, basicBlock);				if (!methodGen.isStatic()) {			ValueNumber v = vnaFrame.getValue(0);			if (v.equals(vn)) return;		}				if (vn.getFlags() == ValueNumber.CONSTANT_CLASS_OBJECT) return;				if (DEBUG) {			System.out.println("FOUND GUARANTEED DEREFERENCE");			System.out.println("Location: " + location);			System.out.println("Value number frame: " + vnaFrame);			System.out.println("Dereferenced valueNumber: " + vn);			System.out.println("Load: " + vnaFrame.getLoad(vn));					}		// Mark the value number as being dereferenced at this location		fact.addDeref(vn, location);	}