public VariableStorage getNextArgLocation(Parameter[] params, DataType dataType,
			Program program) {
		return getArgLocation(params != null ? params.length : 0, params, dataType, program);
	}
Get the preferred parameter location for a new parameter which will appended
to the end of an existing set of params.  If existing parameters use custom
storage, this method should not be used.
<br>
Note: storage will not be assigned to the {@link DataType#DEFAULT default undefined} datatype,
zero-length datatype, or any subsequent parameter following such a parameter.
<br>
Warning: The use of this method with a null {@code params} argument, or incorrect
datatypes, is highly discouraged since it will produce inaccurate results.
It is recommended that a complete function signature be used in
conjunction with the {@link #getStorageLocations(Program, DataType[], boolean)}
method.  Parameter storage allocation may be affected by the return datatype
specified (e.g., hidden return storage parameter).
 
@param params existing set parameters to which the next parameter will
be appended (may be null). Element-0 corresponds to the return datatype. 
@param dataType dataType associated with next parameter location or null
for a default undefined type.  If null the speculative first parameter storage
is returned. 
@param program is the Program
@return next parameter location or {@link VariableStorage#UNASSIGNED_STORAGE} if
unable to determine suitable location
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/PrototypeModel.java