public VariableStorage getReturnLocation(DataType dataType, Program program) {
		DataType clone = dataType.clone(program.getDataTypeManager());
		PrototypePieces proto = new PrototypePieces(this, clone);
		ArrayList<ParameterPieces> res = new ArrayList<>();
		outputParams.assignMap(proto, program.getDataTypeManager(), res, false);
		if (res.size() > 0) {
			return res.get(0).getVariableStorage(program);
		}
		return null;
	}
Get the preferred return location given the specified dataType.
If the return value is passed back through a hidden input pointer,
i.e. {@link AutoParameterType#RETURN_STORAGE_PTR}, this routine will not pass back
the storage location of the pointer, but will typically pass
back the location of the normal return register which holds a copy of the pointer.
<br>
Note: storage will not be assigned to the {@link DataType#DEFAULT default undefined} datatype
or zero-length datatype.

@param dataType first parameter dataType or null for an undefined type.
@param program is the Program
@return return location or {@link VariableStorage#UNASSIGNED_STORAGE} if
unable to determine suitable location
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/PrototypeModel.java