|
Steve, *OMIT appears to be the only way to go for your requirement. It does of course mean that instead of using %Parms to determine if the parameter was passed, you will have to check for *Null instead (wouldn't it be nice if we could check for *Omit - hint hint Barbara!) but it has the advantage that you can pass on the parm with impunity. The compiler does not defend against passing unpassed parms - just as it doesn't stop you from attempting to reference those fields. Unlike called programs, attempting to reference an unpassed parm on a bound call will not necessarily blow up - sadly. If there is a valid pointer on the stack it will use it and you'll be passing goodness knows what data. Seems to me that it would be a nice compiler option to be able to specify that any attempt to reference an unpassed parm would result in a null pointer being used. That would have given you the result you expected. For compatibility reasons we're stuck with the current behavior as the default and I know it would be less efficient, but the current situation is just plain dangerous. Jon Paris Partner400
This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.