Well we do not want to have to check to see if things are changed every time
we leave the building.  We have more than enough to do as it is.

John T. Abell
President
International Software Products
Tel:              800-295-7608  Ext: 224
International:  1-416-593-5578  Ext: 224
Fax:              800-295-7609
International:  1-416-593-5579

E-mail:  john.ab...@intnlsoftwareproducts.com
Web: www.ispinfo.com

This email may contain confidential and privileged material for the sole use
of the intended recipient(s). Any review, use, retention, distribution or
disclosure by others is strictly prohibited. If you are not the intended 
recipient (or authorized to receive on behalf of the named recipient),
please contact the sender by reply email and delete all copies of this
message. Also,email is susceptible to data corruption, interception, 
tampering, unauthorized amendment and viruses. We only send and receive
emails on the basis that we are not liable for any such corruption,
interception, tampering, amendment or viruses or any consequence thereof.
        
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of Bernd Oppolzer
Sent: Tuesday, April 01, 2014 11:08 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Compiler error in z/OS C compiler

of course, all those problems are easily solved when coding some small
ASSEMBLER subprograms. I did this in fact, when we had some problems in the
past with the 0C8 abends due to high order bits set in passed addresses
(call an ASSEMBLER subprogram to switch OFF the PSW mask bit for 0C8 on
entry to the C module - which the site wanted to be ON in the normal case -
and switch it ON again, when leaving the C module).

The solution with ASSEMBLER subprograms of course has the drawback that you
have to link the subprogram, that is, you have some impact on the compile
and link JCL, which is not always desirable, and: you have to provide at
least minimal linkage conventions, while a C solution, as I provided it in
my other post, can be inlined in the generated C code without this overhead.

The key is indeed, as Andrew Rowley pointed it out: if you don't tell the C
compiler that the pointer coming from PL/1 is a pointer, the C compiler will
not treat it as a 31 bit value, so you can manipulate it before casting it
to a pointer ... at least I hope so. I see no reason, why the solution
proposed by Andrew should not work.

Kind regards

Bernd




Am 01.04.2014 16:44, schrieb Charles Mills:
> Perhaps write the cleanup function in assembler? This is obviously a 
> trivial problem in assembler. None of the inconvenience of strong 
> typing to get in your way LOL.
>
> Charles

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


---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com

----------------------------------------------------------------------
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