IBM "Classic" XLC C++ V2R5 The fundamental problem I am trying to solve is creating bi-modal source code that will support UNIX dates beyond 2038; or alternatively will build under z/OS V2R2.
I have the usual sort of #if/#else/#endif structure based on a macro named Y2038_LEV2R3. I want to set the macro in an options file because that is where the LE version is set, so I can group the two things together, something like DEF (Y2038_LEV2R3=) TARG(LE,zOSV2R3) Questions: 1. I'm kind of nervous -- deservedly it turns out -- whether the macro logic is working as intended. Is there a way to put a compile time message into the code? I would like something that worked like #error but that generated an informational message rather than an error. I would even settle for a warning. I don't see anything like that. Am I missing something? 2. It turns out the macro logic is *not* working. I have the lines above in an options file (which I know is being processed) and the following C++ code: #ifdef Y2038_LEV2R3 // Y2038 and LEV2R3+ timeb64 now, timesup; ftime64(&now); #else // No Y2038 and LEV2R1+ #error Y2038_LEVR2R3 not happening! timeb now, timesup; ftime(&now); #endif and sure enough, the error message is being output by the compiler. CCN5859 (S) #error directive: Y2038_LEVR2R3 not happening!. What am I doing wrong? Thanks, Charles ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN