private void determineReferenceConflicts(TaskMonitor monitor, AddressSet onlyMyCUsChanged,
			AddressSet onlyLatestCUsChanged) throws CancelledException {
		// Get REFERENCE Diffs to check for conflicts with code units.
		monitor.setMessage("Getting Reference changes.");
		ProgramDiffFilter referenceFilter =
			new ProgramDiffFilter(ProgramDiffFilter.REFERENCE_DIFFS);
		AddressSetView latestRefDiffs =
			this.diffOriginalLatest.getDifferences(referenceFilter, monitor);
		AddressSetView myRefDiffs = this.diffOriginalMy.getDifferences(referenceFilter, monitor);

		// Get Latest Reference & My Code Unit change conflicts.
		monitor.setMessage("Checking for conflicts between Code Unit & Reference changes.");
		conflictRefCU = onlyMyCUsChanged.intersect(latestRefDiffs);
		conflictRefCU = DiffUtility.getCodeUnitSet(conflictRefCU, myPgm);
		// Get Latest Code Unit & My Reference change conflicts.
		conflictCURef = onlyLatestCUsChanged.intersect(myRefDiffs);
		conflictCURef = DiffUtility.getCodeUnitSet(conflictCURef, latestPgm);
	}
Determines indirect code unit conflicts. This is anywhere that code unit
changes to one program conflict with non-codeunit changes to the other
program. The following non-codeunit changes conflict with code unit changes.
<ul>
<li>bytes</li>
<li>equates</li>
<li>references</li>
</ul>
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/CodeUnitMerger.java