private void addFunctionLabelMultipleMatches(Function function, TaskMonitor monitor)
			throws CancelledException {

		Program program = function.getProgram();

		Symbol symbol = function.getSymbol();
		boolean preexistingSymbol = (symbol != null && symbol.getSource() != SourceType.DEFAULT);

		Set<String> unusedNames =
			getFIDNamesThatDontExistSomewhereElse(program, nameAnalysis.getNameIterator());

		Address addr = function.getEntryPoint();
		for (String functionName : unusedNames) {
			monitor.checkCancelled();
			addSymbolToFunction(function, functionName);
			List<Address> list = multiMatchNames.get(functionName);
			if (list == null) {
				list = new LinkedList<Address>();
				multiMatchNames.put(functionName, list);
			}
			list.add(addr);
		}

		if (unusedNames.size() > 1) {
			if (!preexistingSymbol) {
				conflictFunctions.add(addr);
			}
			if (createBookmarksEnabled) {
				BookmarkManager bookmarkManager = function.getProgram().getBookmarkManager();
				bookmarkManager.setBookmark(addr, BookmarkType.ANALYSIS,
					FIDCONFLICT_BOOKMARK_CATEGORY, "Multiple likely matching functions");
			}
		}
	}
Delete a symbol of the given name at the given address.

@param matchName is the given Symbol name
@param addr is the given Address
@param program is the Program
@return the number of Symbols remaining at the address
Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/cmd/ApplyFidEntriesCommand.java