The following information describes the components of a C compiler listing. These are available for regular and IPA compilations. Differences in the IPA versions of the listings are noted. Using the IPA link step listing describes IPA-specific listings.
The first page of the listing is identified by the product number, the compiler version and release numbers, the name of the data set or z/OS® UNIX file containing the source code, the date and time compilation began (formatted according to the current locale), and the page number.
The Prolog section provides information about the compile-time library, file identifiers, compiler options, and other items in effect when the compiler was invoked.
All options except those with no default (for example, DEFINE) are shown in the listing. Any problems with the compiler options appear after the body of the Prolog section.
If you specify the SOURCE option, the listing file includes input to the compiler.
The compiler generates the Includes section when you use include files, and specify the options SOURCE, LIST, or INLRPT.
The XREF option generates a cross-reference table that contains a list of the identifiers from the source program and the line numbers in which they appear.
If the preprocessor or the compiler detects an error, or the possibility of an error, it generates messages. If you specify the SOURCE compiler option, preprocessor error messages appear immediately after the source statement in error. You can generate your own messages in the preprocessing stage by using the #error preprocessor directive. For information on #error, see the z/OS XL C/C++ Language Reference.
If you specify the compiler options CHECKOUT or INFO(), the compiler will generate informational diagnostic messages.
For more information on the compiler messages, see FLAG | NOFLAG, and z/OS XL C/C++ Messages.
This listing section displays the total number of messages and the number of messages for each severity level.
If you specify the OPTIMIZE and INLINE(,REPORT,,) options, or the OPTIMIZE and INLRPT options, an Inline Report is included in the listing. This report contains an inline summary and a detailed call structure.
Inlining may result in additional messages. For example, if inlining a subprogram with automatic storage increases the automatic storage of the subprogram it is being inlined into by more than 4K, a message is generated.
The LIST compiler option generates a listing of the machine instructions in the object module in a form similar to assembler language.
This Pseudo Assembly listing displays the source statement line numbers and the line number of inlined code to aid you in debugging inlined code.
The LIST compiler option generates the External Symbol Dictionary. The External Symbol Dictionary lists the names that the compiler generates for the output object module. It includes address information and size information about each symbol.
The XREF compiler option generates the External Symbol Cross Reference section. It shows the original name and corresponding mangled name for each symbol.
If you specify the XREF option, the listing file includes offset information on identifiers.
Static Map displays the contents of the @STATIC data area, which holds the file scope read/write static variables. It displays the offset (as a hexadecimal number), the length (as a hexadecimal number), and the names of the objects mapped to @STATIC. Under certain circumstances, the compiler may decide to map other objects to @STATIC. In the example of the listing, the unnamed string "Enter Celsius temperature: \n" is stored in the @STATIC area at offset 48 and its length is 23 (both numbers are in hexadecimal notation), under the name ""12.
If you specify the XREF, IPA (ATTRIBUTE), or IPA (XREF) options, the listing file includes offset information for file scope read/write static variables.