Re: Trace XL C Preprocessor input

2023-06-26 Thread Linda Chui
On Fri, 23 Jun 2023 19:00:02 -0500, Eric Erickson  wrote:

>Using XL C on z/OS V2R5. I've got a set of #ifdefs in a header file that are 
>not giving me the results I expect. I know on other compilers I've used in the 
>past that there were options to output all input statements showing the 
>#ifdefs and how the logic was processed. I need the same thing for the XL C 
>compiler, but can not seem to find the proper options. I tried PPONLY, but it 
>only showed the output after preprocessing it does not show the #ifdefs, which 
>I need to see how the logic is getting executed.
>
>--
>For IBM-MAIN subscribe / signoff / archive access instructions,
>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


hi Eric,

There are some good responses already.  My colleague asked me to post this on 
their behalf:


You can use the SKIPSRC(SHOW) option along with any listing option (Ex. SOURCE) 
to show the portions of the files. The EXPMAC option is also helpful to see 
macro expansions.


Hope this helps.

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


Re: Trace XL C Preprocessor input

2023-06-24 Thread Colin Paice
See here

SKIPS(SHOW|HIDE)

The SKIPS(HIDE) also known as SKIPSRC shows you what is used, and
suppresses text which is not used. I found this useful trying to find the
combination of #define … to get the program to compile.

For example with SKIPS(SHOW)

170 |#if 0x4204 >= 0X220A   | 672
   4
171 |#if defined (_NO_PROTO) &&  !defined(__cplusplus)  | 673
   4
172 |#define __new210(ret,func,parms) ret func ()   | 674
   4
173 |#else  | 675
   4  *174 |#define __new210(ret,func,parms) ret func
parms| 676 4*
175 |#endif | 677
   4
176 |#elif !defined(__cplusplus) && !defined(_NO_NEW_FUNC_CHECK)| 678
   4  *177 |   #define __new210(ret,func,parms) \
| 679 4
178 |extern struct __notSupportedBeforeV2R10__ func | 680
   4  *
179 |   #else   | 681
   4
180 | #define __new210(ret,func,parms)  | 682
   4
181 |#endif | 683
   4

With SKIPS(HIDE) the bold lines are not displayed,

170 |#if 0x4204 >= 0X220A  | 629 4
171 |#if defined (_NO_PROTO) &&  !defined(__cplusplus) | 630 4
172 |#define __new210(ret,func,parms) ret func ()  | 631 4
173 | else | 632 4
175 |#endif| 633 4
176 |  | 634 4
179 |   #else  | 635 4
181 |#endif| 636 4
182 |#endif| 637 4

This shows

   - 170 The line number within the included file
   - 629 The line number within the file
   - 4 is the 4th included file. In the “I N C L U D E S” section it says 4
   /usr/include/features.h
   - rows 174 is missing … this is the #else text which was not included
   - rows 177, 178,180 are omitted.

This makes is much easier to browse through the includes to find why you
have duplicate definitions and other problems.

On Sat, 24 Jun 2023 at 01:00, Eric Erickson  wrote:

> Using XL C on z/OS V2R5. I've got a set of #ifdefs in a header file that
> are not giving me the results I expect. I know on other compilers I've used
> in the past that there were options to output all input statements showing
> the #ifdefs and how the logic was processed. I need the same thing for the
> XL C compiler, but can not seem to find the proper options. I tried PPONLY,
> but it only showed the output after preprocessing it does not show the
> #ifdefs, which I need to see how the logic is getting executed.
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

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


Re: Trace XL C Preprocessor input

2023-06-24 Thread kekronbekron
Sprinkle a bunch of #warning "I'm here" in all code paths. Unique messages of 
course.

- KB

--- Original Message ---
On Saturday, June 24th, 2023 at 5:30 AM, Eric Erickson  
wrote:


> Using XL C on z/OS V2R5. I've got a set of #ifdefs in a header file that are 
> not giving me the results I expect. I know on other compilers I've used in 
> the past that there were options to output all input statements showing the 
> #ifdefs and how the logic was processed. I need the same thing for the XL C 
> compiler, but can not seem to find the proper options. I tried PPONLY, but it 
> only showed the output after preprocessing it does not show the #ifdefs, 
> which I need to see how the logic is getting executed.
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

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


Re: Trace XL C Preprocessor input

2023-06-23 Thread Charles Mills
SHOWINC?

(+ SOURCE)

On Fri, 23 Jun 2023 19:00:02 -0500, Eric Erickson  wrote:

>Using XL C on z/OS V2R5. I've got a set of #ifdefs in a header file that are 
>not giving me the results I expect. I know on other compilers I've used in the 
>past that there were options to output all input statements showing the 
>#ifdefs and how the logic was processed. I need the same thing for the XL C 
>compiler, but can not seem to find the proper options. I tried PPONLY, but it 
>only showed the output after preprocessing it does not show the #ifdefs, which 
>I need to see how the logic is getting executed.

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


Trace XL C Preprocessor input

2023-06-23 Thread Eric Erickson
Using XL C on z/OS V2R5. I've got a set of #ifdefs in a header file that are 
not giving me the results I expect. I know on other compilers I've used in the 
past that there were options to output all input statements showing the #ifdefs 
and how the logic was processed. I need the same thing for the XL C compiler, 
but can not seem to find the proper options. I tried PPONLY, but it only showed 
the output after preprocessing it does not show the #ifdefs, which I need to 
see how the logic is getting executed.

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