System.out.println("Found special edge");
if (DEBUG) { System.out.println("\n Forcing union of " +  System.identityHashCode(result) + " due to backedge info"); System.out.println("  result: " +  result); }
	public void meetInto(UnconditionalValueDerefSet fact, Edge edge,			UnconditionalValueDerefSet result) throws DataflowAnalysisException {				if (ignoreThisEdge(edge)) {			return;		}				// Edge transfer function		if (isFactValid(fact)) {			fact = propagateDerefSetsToMergeInputValues(fact, edge);			if (invDataflow != null) {				fact = clearDerefsOnNonNullBranch(fact, edge);			}		}		boolean isBackEdge = edge.isBackwardInBytecode();		boolean foo2 = edge.foo(ClassContext.getLoopExitBranches(methodGen));		if (foo2 && edge.getType() == EdgeTypes.FALL_THROUGH_EDGE)			isBackEdge = true;		if (DEBUG && (edge.getType() == EdgeTypes.IFCMP_EDGE || foo2)) {			System.out.println("Meet into " + edge);			System.out.println("  foo2: " + foo2);			System.out.println("  getType: " + edge.getType() );		    System.out.println("  Backedge according to bytecode: " + isBackEdge);		    System.out.println("  Fact hashCode: " + System.identityHashCode(result));		    System.out.println("  Initial fact: " + result);		    System.out.println("  Edge fact: " + fact);		}		if (result.isTop() || fact.isBottom()) {			// Make result identical to other fact			copy(fact, result);			if (isBackEdge && !fact.isTop())				result.resultsFromBackEdge = true;		} else if (false && isBackEdge && !fact.isTop()) {			result.makeSameAs(fact);			result.resultsFromBackEdge = true;			System.out.println("Found special edge");		} else if (result.isBottom() || fact.isTop()) {			// No change in result fact		} else {			// Dataflow merge			// (intersection of unconditional deref values)			if (false && result.resultsFromBackEdge) {				if (DEBUG) System.out.println("Skipping update of " +  System.identityHashCode(result) + " due to backedge info");				return;			}			result.mergeWith(fact, vnaDataflow.getAnalysis().getFactory());			if (DEBUG) {				System.out.println("  updated: " + System.identityHashCode(result));				 System.out.println("  result: " +  result);				 return;			}		}		if (DEBUG && isBackEdge && edge.getType() == EdgeTypes.IFCMP_EDGE) {		 System.out.println("  result: " +  result);		}	}