public void visitFlowGraph(final FlowGraph cfg) {
		if (FlowGraph.DEBUG) {
			System.out.println("Verifying CFG for " + cfg.method());
		}

		this.cfg = cfg;

		uses = new HashSet();
		nodes = new HashSet();

		cfg.visitChildren(this);

		final Iterator e = uses.iterator();

		while (e.hasNext()) {
			final Expr use = (Expr) e.next();
			Assert.isTrue(nodes.contains(use), "use = " + use + " ("
					+ System.identityHashCode(use) + ") is not in the CFG");
		}

		if (FlowGraph.DEBUG) {
			System.out.println("Verification successful");
		}

		this.cfg = null;
		uses = null;
		nodes = null;
		block = null;
		parent = null;
	}