Like HLASM, I'm not clear on what you want to do.  But &STCKEVAL(8) means
that you want the 8th element of a sublisted parameter named &STCKEVAL,
which it ain't.  If the (8) is supposed to be a length override, precede it
with a dot.

sas

On Thu, Oct 29, 2015 at 4:07 PM, Paul Gilmartin <
00000014e0e4a59b-dmarc-requ...@listserv.uga.edu> wrote:

> In a macro, the following works OK:
>
>   Loc  Object Code    Addr1 Addr2  Stmt   Source Statement
>                   HLASM R6.0  2015/10/29 13.44
>                                                  ....
> 0000F2 F3E7 D0D0 D118 000D0 00118   146+         UNPK  YYYY(15),PK(8)
> ... where YYYY and PK are both relocatable symbols defined in a DSECT
> outside the macro.
>
> But:
>                                       3          MACRO
>                                       4 &L       CONV  &STCKEVAL
>                                                  ...
>                                                  UNPK
> YYYY(15),&STCKEVAL(8)
> gives:
> 000112 0000 0000 0000 00000 00000   161+         UNPK  YYYY(15),
> ** ASMA074E Illegal syntax in expression -
> ** ASMA435I Record 32 in SPPG.HELLO.JOB06662.D0000101.? on volume:
> Where &STCKEVAL is a parameter defined as:
>                                      90          CONV
> =X'00C3870CB8C73BFFFFFFFFFFFFFFFFFF'
> ... in the macro call.
>
> Naively, I had hoped that PK and &STCKEVAL would both work as
> relocatable address expressions.  What's the nicest way to make this work?:
>
> o Copy the literal to a work area?
>
> o LA R15,&STCKEVAL and base off that?
>
> o X&SYSNDX EQU &STCKEVAL and use that?
>
> o Other?
>
> Thanks,
> gil
>



-- 
sas

Reply via email to