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

Reply via email to