private void determineExternalFunctionConflict(ExternalLocation[] externalLocations,
			int latestMyChanges, int originalLatestChanges, int originalMyChanges,
			TaskMonitor monitor) throws CancelledException {

		// Don't look for function diffs if there is a function vs data type conflict?
		Address myExternalAddress = externalLocations[MY].getExternalSpaceAddress();
		if (externalFunctionVersusDataTypeConflicts.contains(myExternalAddress)) {
			return; // Function Vs Data Type conflict is already handling this.
		}

		boolean latestIsFunction = externalLocations[LATEST].isFunction();
		boolean myIsFunction = externalLocations[MY].isFunction();

		boolean latestChangedFunction = (originalLatestChanges & EXTERNAL_FUNCTION) != 0;
		boolean myChangedFunction = (originalMyChanges & EXTERNAL_FUNCTION) != 0;

		if (!latestIsFunction && !myIsFunction) {
			return;
		}

		// Check for function change conflict or auto-merge function change.
		boolean differentFunctions = (latestMyChanges & EXTERNAL_FUNCTION) != 0;
		// If the data types are different, then did a change to one conflict with a
		// data type or function change to the other?
		if (differentFunctions) {
			if (myChangedFunction) {
				if (latestChangedFunction) {
					determineDetailedFunctionConflicts(externalLocations, monitor);
				}
				else {
					// Auto Merge MY external function changes.
					replaceFunction(externalLocations[RESULT], externalLocations[MY], getMergeMy(),
						monitor);
				}
			}
			// Otherwise only LATEST changed the function and it is already in the RESULT.
		}
		// Otherwise functions are already the same so do nothing.
	}
<CODE>replaceExternalDataType</CODE> replaces the data type of the
external label in program1 with the data type of the external label in program2
at the specified external space address.
@param resultExternalLocation
@param fromExternalLocation
@param monitor the task monitor for notifying the user of this merge's progress.
@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/ExternalFunctionMerger.java