public void updateFunctionSignature() {
		try {
			boolean includeStorageDetail = signatureCommitMode == CommitMode.STORAGE;
			FunctionUpdateType functionUpdateType = includeStorageDetail
					? FunctionUpdateType.CUSTOM_STORAGE
					: FunctionUpdateType.DYNAMIC_STORAGE_ALL_PARAMS;

			Parameter returnVar = retval.asReturnParameter(includeStorageDetail);
			List<Parameter> parameters = getParameters(includeStorageDetail);

			if (includeStorageDetail && !retval.isZeroByte() && retval.isMissingStorage()) {
				// TODO: this logic is faulty and borks the auto _return_storage_ptr_ when present
				// Update return value in a separate step as its storage isn't typically specified
				// in dwarf info.
				// This will allow automagical storage assignment for return value by ghidra.
				function.updateFunction(callingConventionName, returnVar, List.of(),
					FunctionUpdateType.DYNAMIC_STORAGE_ALL_PARAMS, true, SourceType.IMPORTED);
				returnVar = null; // don't update it in the second call to updateFunction()
			}

			function.updateFunction(callingConventionName, returnVar, parameters,
				functionUpdateType, true, SourceType.IMPORTED);
			function.setVarArgs(varArg);
			function.setNoReturn(noReturn);
		}
		catch (InvalidInputException | DuplicateNameException e) {
			Msg.error(this, "Error updating function %s@%s with params: %s".formatted(
				function.getName(), function.getEntryPoint().toString(), e.getMessage()));
			Msg.error(this, "DIE info: " + diea.toString());
		}
	}
Returns the parameters of this function as {@link ParameterDefinition}s.

@return array of {@link ParameterDefinition}s
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFFunction.java