Adam, In the second example DAYS1 is seen and treated as a character parm "DAYS1". In both cases you do not pass &PTERM, which means that parm &DAYS1 will have not a pointer set (MCH3601) when referenced in the CLP. Regards, Carel Teijgeler *********** REPLY SEPARATOR *********** On 16-11-2006 at 16:18 AGlauser@xxxxxxxxxxxx wrote:
I have a CL program that was causing a very strange error. The CL has
this at the beginning:
PGM PARM(&VTYPE &PTERM &UTERM &DAYS1) DCL VAR(&VTYPE) TYPE(*CHAR) LEN(3) DCL VAR(&PTERM) TYPE(*DEC) LEN(3) DCL VAR(&DAYS1) TYPE(*DEC) LEN(3 0) DCL VAR(&UTERM) TYPE(*DEC) LEN(3) Depending on which location the report was requested from, there was a
CALL PGM(pgmA) PARM(&VTYPE &UTERM &DAYS1), which worked just fine, or CALL PGM(pgmA) PARM(&VTYPE &UTERM DAYS1) which doesn't work. My question is, how did the value DAYS1 pass through the compiler. This is not a valid variable reference (no & prefix), nor is it a valid character literal (not enclosed in ' '). Can anyone explain to me why the
compiler didn't catch this?