private boolean hasSymbolWithNameConflict(Program program, Symbol symbol, Program otherProgram,
			boolean saveConflict) {
		Symbol s = SimpleDiffUtility.getSymbol(symbol, otherProgram);
		if (s != null) {
			return false;
		}
		String name = symbol.getName();
		Namespace namespace = DiffUtility.getNamespace(symbol.getParentNamespace(), otherProgram);
		SymbolTable otherSymTab = otherProgram.getSymbolTable();
		Address address =
			SimpleDiffUtility.getCompatibleAddress(program, symbol.getAddress(), otherProgram);
		Symbol addressSymbol =
			(address != null) ? otherSymTab.getSymbol(name, address, namespace) : null;

		List<Symbol> sameNamespaceSymbols = otherSymTab.getSymbols(name, namespace);
		boolean addressConflict = isAddressConflict(addressSymbol);
		boolean namespaceConflict = isNamespaceConflict(sameNamespaceSymbols, symbol);
		if (saveConflict) {
			// There could be multiple types of conflicts for this symbol.
			if (addressConflict) {  // (example: changed vs removed)
				saveAddressConflict(address, symbol);	// this might be the wrong type of symbol
			}
			if (namespaceConflict) {  // (example: namespace vs library)
				// Symbol could be latest, my, or original. 
				// Only check namespace if it is my symbol that has a namespace conflict and rename it.
				if (program == myPgm) {
					Address myAddr = symbol.getAddress();
					Namespace myNs = symbol.getParentNamespace();
					String myName = symbol.getName();
					Namespace resultNs = DiffUtility.getNamespace(myNs, resultPgm);
					uniqueName = ProgramMerge.getUniqueName(resultSymTab, myName, myAddr, resultNs,
						symbol.getSymbolType());
					mergeSymbol(symbol, RENAME_MY);
				}
			}
		}
		return addressConflict || namespaceConflict;
	}
Checks to see if there is a symbol in the otherProgram that conflicts
with the indicated symbol. A conflict can be one of these types:
1) a symbol other than label or function that has the same name and 
namespace as another non label or function.
2) a symbol at the same address with the same name and namespace.

@param program the program that contains the specified symbol
@param symbol the symbol (Can be original, latest, or my.)
@param otherProgram the program to be checked for a conflicting symbol
@param saveConflict if true this will also save the conflict for processing or in
some cases automatically process the conflict.
@return true if there is a symbol name conflict
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java