private void getIndirectConflicts(TaskMonitor monitor) throws CancelledException {

		monitor.setMessage("Getting Byte changes.");
		AddressSet onlyMyBytesChanged = myByteSet.subtract(conflictBytes);
		AddressSet onlyLatestBytesChanged = latestByteSet.subtract(conflictBytes);

		monitor.setMessage("Getting Code Unit changes.");
		AddressSet onlyMyCUsChanged = myCUSet.subtract(bothChangedCUSet);
		AddressSet onlyLatestCUsChanged = latestCUSet.subtract(bothChangedCUSet);

		// Get Latest Code Unit & My Byte change conflicts.
		monitor.setMessage("Checking for conflicts between Byte & Code Unit changes.");
		conflictCUByte = onlyMyBytesChanged.intersect(onlyLatestCUsChanged);
		conflictCUByte = DiffUtility.getCodeUnitSet(conflictCUByte, latestPgm);
		// Get Latest Byte & My Code Unit change conflicts.
		conflictByteCU = onlyLatestBytesChanged.intersect(onlyMyCUsChanged);
		conflictByteCU = DiffUtility.getCodeUnitSet(conflictByteCU, myPgm);

		determineEquateConflicts(monitor, onlyMyBytesChanged, onlyLatestBytesChanged,
			onlyMyCUsChanged, onlyLatestCUsChanged);

		determineReferenceConflicts(monitor, onlyMyCUsChanged, onlyLatestCUsChanged);
	}
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