Yes, the UNSPEC construct is at once labored and surpassingly ugly.

I'm not located on this Sunday morning where I can conveniently chase
down when exactly the bif POINTERADD was added to the language, but
even without it one can do pointer arithmetic perspicuously using
constructs of the form

declare p pointer, pfwarith unsigned binary fixed(32) based(addr(p)) ;

The statement

pfwarith = pfwarith + <increment> ;

then increments p by the value of <increment>.  (C-in-PL/I enthusiasts
can even write

pwarith ++= <increment> ;

instead.)

The use of UNSPEC [except perhaps, and then only very occasionally, as
a pseudovariable] is prima facie evidence of PL/I baby talk.

--jg

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to