Bernd Oppolzer wrote:
Thank you all for your valuable suggestions.The compiler is z/OS XL/C V1.13 and V1.11 - well, in fact, I didn't test it with the 1.11. version. I observed the problem on the site with the 1.13 version. This is part of the PL/1 interface for my XML parser. I had to do a rollout today on three different sites of my customers; that's why there are different versions of the compiler. The site with the 1.11. compiler is on z/OS v1.13, but still uses the old compiler. I found a workaround in the meantime, this way: /**********************************************************/ /* */ /* PLI/1 NULL () => SYSNULL () */ /* */ /**********************************************************/ static void pli_null_to_sysnull (void *pptr) { char *cp = pptr; if (memcmp (cp, "\xff\x00\x00\x00", 4) == 0) { *cp = 0x00; } }
Hi Bernd, I think that's incorrect - it's comparing what cp _points to_ with 0xff000000 - instead of the value of cp. If you wanted to do the comparison suggested from your original post, wouldn't it correctly be this: memcmp(&cp, "\xff\x0\x0\x0", 4); That would compare the value of cp with 0xff000000. It's a rather round-a-bout way to make it happen.., I'm kinda still of the opinion that "something else" is going on. - Dave Rivers - -- [email protected] Work: (919) 676-0847 Get your mainframe programming tools at http://www.dignus.com ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
