From: <Gene_Gaunt/ReviewWorks@reviewworks.com> > Seems CMPPTRT returns a "not equal" condition when it compares a null value > to an unresolved system pointer containing an invalid initial value. Why? > Shouldn't this situation return an "equal" condition? In the following > little program at the breakpoint, FLAG1 has value "0" while FLAG2 has value > "1". Shouldn't FLAG1 have value "1" too, since pointer P and pointer Q > are both null and both will fail in a CALLX operand 1? > > DCL SYSPTR P AUTO INIT("BADNAME!!"); > DCL SYSPTR Q AUTO; > DCL DD FLAG1 AUTO CHAR(1); > DCL DD FLAG2 AUTO CHAR(1); > > CMPPTRT(I) P, * / EQ(FLAG1); /* becomes "0" */ > CMPPTRT(I) Q, * / EQ(FLAG2); /* becomes "1" */ > BRK "LOOK"; Gene if you look at the pointers you'll see they are (on my system, addresses will be different on yours): 200000000000000016C5BF5032001550 ; P 00000000000000000000000000000000 ; Q so P actually has a value. If you go to the address you'll see: Address 16C5BF5032 001550 001550 00504080 00000000 001E0000 00000001 ·& Ř············ 001560 0201C2C1 C4D5C1D4 C55A5A40 40404040 ··BADNAME!! 001570 40404040 40404040 40404040 40404040 so BADNAME!! actually exists. Is a *PGM (type/subtype 0201) so no wonder you get the result you got. +--- | This is the MI Programmers Mailing List! | To submit a new message, send your mail to MI400@midrange.com. | To subscribe to this list send email to MI400-SUB@midrange.com. | To unsubscribe from this list send email to MI400-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: firstname.lastname@example.org +---
As an Amazon Associate we earn from qualifying purchases.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.