T.R | Title | User | Personal Name | Date | Lines |
---|
457.1 | | AUSS::GARSON | DECcharity Program Office | Mon Apr 14 1997 04:31 | 7 |
| re .0
That approach simply won't work on Alpha. You should use the built-in
function appropriate to the language you are using. FORTRAN and C both
have one. I don't know about BASIC. Try the BASIC conference. Note that
obtaining the argument count is probably non-standard and non-portable
in most languages.
|
457.2 | IARGCOUNT ? | MUCTEC::BECKER | Hartmut B., VMS & Languages, Munich | Mon Apr 14 1997 08:47 | 6 |
| Looks like IARGCOUNT can do the job. Help Fortran Intrinsic Iargcount
explains: A function that returns the count of actual arguments passed to
the current routine.
Hth,
Hartmut
|
457.3 | Pointers... | XDELTA::HOFFMAN | Steve, OpenVMS Engineering | Mon Apr 14 1997 10:28 | 16 |
|
There is a Macro32 (VAX Aseembler, Alpha Compiler) conference
at TURRIS::MACRO.
You will want to point the customer at the Porting Macro32
documentation in the OpenVMS documentation set, as well.
You will also want to point your customer at the LIB$ routines
that look at the "invocation" construct.
And you will want to point your customer -- in addition to the
Fortran keyword in a previous reply -- at the C variable-length
argument processing, which also includes a mechanism by which
the argument count can be retrieved. (Donno about BASIC, ask
the folks over in the BASIC conference.)
|
457.4 | GET_INVO_XXX not useful for this stuff | WIBBIN::NOYCE | Pulling weeds, pickin' stones | Mon Apr 14 1997 10:51 | 7 |
| > You will also want to point your customer at the LIB$ routines
> that look at the "invocation" construct.
No, that won't be useful for finding the number of arguments a caller
received. The only reliable method on Alpha is to use the language's
builtin argument-count operator or function. If BASIC doesn't have one,
then there's no reliable method for BASIC.
|
457.5 | It's The Alpha "Call-Frame Traversal" Code... | XDELTA::HOFFMAN | Steve, OpenVMS Engineering | Mon Apr 14 1997 12:06 | 8 |
| :> You will also want to point your customer at the LIB$ routines
:> that look at the "invocation" construct.
:
:No, that won't be useful for finding the number of arguments a caller
:received.
But it is the closest Alpha mechanism available "comparable" to
the VAX call-frame traversal scheme...
|
457.6 | | TLE::REAGAN | All of this chaos makes perfect sense | Mon Apr 14 1997 13:52 | 6 |
| Yes you can find the caller's frame. But since the compiler is
at liberty to move the argument count to anywhere (or throw it
away altogether if it doesn't appear to be needed), you can't reliably
find the argument count even if you have the frame pointer.
-John
|