if (nextIsSuccessor && bbIndex < list.length) { bb.addSuccessor(list[bbIndex]); }
	public IRBasicBlock[] createBasicBlocks() {		// Sort the blocks on start PC		Collections.sort(blocks, this);		// Create the array		final IRBasicBlock[] list = (IRBasicBlock[])blocks.toArray(new IRBasicBlock[blocks.size()]);		// Set the EndPC's and flags		final byte[] opcodeFlags = this.opcodeFlags;		final int len = opcodeFlags.length;		int bbIndex = 0;		for (int i = 0; i < len; i++) {			if (isStartOfBB(i)) {				final int start = i;				// Find the end of the BB				i++;				while ((i < len) && (!isStartOfBB(i))) {					i++;				}				// the BB				final IRBasicBlock bb = list[bbIndex++];				if (bb.getStartPC() != start) {					throw new AssertionError("bb.getStartPC() != start");				}				bb.setEndPC(i);				bb.setStartOfExceptionHandler(isStartOfException(start));				i--;			}		}		if (bbIndex != list.length) {			throw new AssertionError("bbIndex != list.length");		}		return list;	}