public void replaceFunctionVariableDataType(Address originEntryPoint, Variable var,
			TaskMonitor monitor) {
		if (var instanceof Parameter) {
			replaceFunctionParameterDataType(originEntryPoint, ((Parameter) var).getOrdinal(),
				monitor);
			return;
		}
		Address resultEntryPoint = originToResultTranslator.getAddress(originEntryPoint);
		Function f1 = resultProgram.getFunctionManager().getFunctionAt(resultEntryPoint);
		Function f2 = originProgram.getFunctionManager().getFunctionAt(originEntryPoint);
		if (f1 != null && f2 != null) {
			Variable toVar = findVariable(var, f1.getLocalVariables());
			Variable fromVar = findVariable(var, f2.getLocalVariables());
			DataType fromDataType = (fromVar != null) ? fromVar.getDataType() : null;
			if (toVar != null) {
				try {
					toVar.setDataType(fromDataType, SourceType.ANALYSIS);
				}
				catch (InvalidInputException e) {
				}
			}
		}
	}
<CODE>replaceFunctionVariableDataType</CODE> replaces the data type on the indicated
function variable in program1 with the data type from the equivalent variable in program2.
@param originEntryPoint the entry point address of the function to modify.
This address should be derived from the origin program.
@param var a variable that is equivalent to the one in program1 to be changed.
The variable passed here could be from another program.
@param monitor the task monitor for notifying the user of progress.
Ghidra/Features/Base/src/main/java/ghidra/program/util/ProgramMerge.java