if (vn.getFlags() == ValueNumber.CONSTANT_CLASS_OBJECT) return;
	private void checkInstance(			Location location,			ValueNumberFrame vnaFrame,			UnconditionalValueDerefSet fact) throws DataflowAnalysisException {		// See if this instruction has a null check.		// If it does, the fall through predecessor will be		// identify itself as the null check.		if (!location.isFirstInstructionInBasicBlock()) {			return;		}		BasicBlock fallThroughPredecessor =			cfg.getPredecessorWithEdgeType(location.getBasicBlock(), EdgeTypes.FALL_THROUGH_EDGE);		if (fallThroughPredecessor == null || !fallThroughPredecessor.isNullCheck()) {			return;		}				// Get the null-checked value		ValueNumber vn = vnaFrame.getInstance(location.getHandle().getInstruction(), methodGen.getConstantPool()); 				// Ignore dereferences of this		if (!methodGen.isStatic()) {			ValueNumber v = vnaFrame.getValue(0);			if (v.equals(vn)) return;		}				// Ignore dereferences of values that are definitely non-null		if (IGNORE_DEREF_OF_NONNULL				&& invDataflow != null				&& isDerefOfNonNullValue(location, invDataflow.getStartFact(fallThroughPredecessor))) {			return;		}		if (IGNORE_DEREF_OF_NONNCP				&& invDataflow != null				&& isDerefOfNullOnComplexPathValue(location, invDataflow.getStartFact(fallThroughPredecessor))) {			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);	}