On May 26, 2012, at 18:28, John Ehrman wrote:
>> So, HLASM is apparently very good at inferring the length of
>> the first argument to CLC at Pass 2, when it's needed, even in
>> the challenging case of a previously unreferenced literal.
>
> By pass 2, the literal is well established, so it's not a challenge by
> then.
>
Now, I'm truly mystified. The very simplest construct works for CLC:
ssembler Option Summary (PTF UK71661) Page 1
HLASM R6.0 2012/05/26 21.49
Loc Object Code Addr1 Addr2 Stmt Source Statement
1 MACRO
2 &L CLC2 &A1,&A2
3 &L CLC &A1.(L'&A2),&A2
4 MEND
5 *
6 MACRO
7 &L MVC2 &A1,&A2
8 &L MVC &A1.(L'&A2),&A2
9 MEND
10 *
11 PRINT GEN
000000 00000 00019 12 FUNCS CSECT
R:C 00000 13 USING FUNCS,12
14 MACCLC CLC2 =C'WOMBAT',=C'FOO'
000000 D502 C010 C016 00010 00016 15+MACCLC CLC =C'WOMBAT'(L'=C'FOO'),=C'
16 * ---------------
17 MACMVC MVC2 =C'WOMBAT',=C'FOO'
000006 0000 0000 0000 00000 00000 18+MACMVC MVC =C'WOMBAT'(L'=C'FOO'),=C'
** ASMA030E Invalid literal usage - =C'WOMBAT'(L'=C'FOO')
** ASMA435I Record 8 in SPPG.FUNCS3.JOB03131.D0000101.? on volume:
19 END
000010 E6D6D4C2C1E3 20 =C'WOMBAT'
000016 C6D6D6 21 =C'FOO'
... but fails for MVC! Why should there be any difference? Isn't
an SS instruction an SS instruction, or are some SS instructions
more equal than others?
-- gil