private ReturnParameterImpl updateReturn(List<LocalVariable> returnResultAliasVars)
			throws InvalidInputException {

		DataType returnDT = newSignature.getReturnType();
		List<Varnode> varnodes = new ArrayList<>();

		if (returnDT == null || Undefined.isUndefined(returnDT)) {
			return null;
		}
		if (DWARFUtil.isVoid(returnDT)) {
			return new ReturnParameterImpl(VoidDataType.dataType, VariableStorage.VOID_STORAGE,
				program);
		}

		GoFunctionMultiReturn multiReturn;
		if ((multiReturn =
			GoFunctionMultiReturn.fromStructure(returnDT, dtm, storageAllocator)) != null) {
			// allocate storage for individual elements of the struct because they were
			// originally separate return values.
			// Also turn off endianness fixups in the registers that are fetched
			// because we will do it manually
			returnDT = multiReturn.getStruct();

			for (DataTypeComponent dtc : multiReturn.getComponentsInOriginalOrder()) {
				allocateReturnStorage(dtc.getFieldName() + "_return_result_alias",
					dtc.getDataType(), varnodes, returnResultAliasVars, false);
			}

			if (!program.getMemory().isBigEndian()) {
				reverseNonStackStorageLocations(varnodes);
			}
		}
		else if (DWARFUtil.isZeroByteDataType(returnDT)) {
			if (DWARFUtil.isEmptyArray(returnDT)) {
				returnDT = makeEmptyArrayDataType(returnDT);
			}
			varnodes.add(new Varnode(GoRttiMapper.getZerobaseAddress(program), 1));
		}
		else {
			allocateReturnStorage("return_value_alias_variable", returnDT, varnodes,
				returnResultAliasVars, true);
		}

		if (varnodes.isEmpty()) {
			return null;
		}
		VariableStorage varStorage = new VariableStorage(program, varnodes.toArray(Varnode[]::new));
		return new ReturnParameterImpl(returnDT, varStorage, true, program);
	}
Returns a Ghidra data type that represents a zero-length array, to be used as a replacement
for a zero-length array parameter.

@param dt data type that will donate its name to the created empty array type
@return {@link DataType} that represents a specific zero-length array type
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/GoFunctionFixup.java