private void determineBodyConflicts(AddressSetView addrs, TaskMonitor monitor)
			throws CancelledException {
		monitor.checkCancelled();
		long totalAddresses = addrs.getNumAddresses();
		monitor.initialize(totalAddresses);
		long granularity = (totalAddresses / 100) + 1;
		int addressCount = 0;
		AddressIterator iter = addrs.getAddresses(true);
		// Look at every address where the Latest or My made a function change.
		while (iter.hasNext()) {
			Address entry = iter.next();
			if (addressCount % granularity == 0) {
				monitor.setProgress(addressCount);
				updateProgress((int) (BODY_CONFLICT_START +
					((addressCount * BODY_CONFLICT_SIZE) / totalAddresses)));
			}
			monitor.setMessage(
				"Checking & Auto-Merging Body Changes for Function " + (++addressCount) + " of " +
					totalAddresses + "." + " Address = " + entry.toString());
			Function originalFunc = functionManagers[ORIGINAL].getFunctionAt(entry);
			Function latestFunc = functionManagers[LATEST].getFunctionAt(entry);
			Function myFunc = functionManagers[MY].getFunctionAt(entry);
			determineBodyConflicts(entry, originalFunc, latestFunc, myFunc, monitor);
		}
	}
@param changeSet address set indicating where either Latest or My changed a function.
@param monitor
@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/FunctionMerger.java