═══ 1. Notices ═══ References in this help to IBM products, programs, or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM licensed program in this help is not intended to state or imply that only IBM's licensed program may be used. Any functionally equivalent product, program, or service that does not infringe on any of IBM's intellectual property rights may be used instead of the IBM product, program, or service. Evaluation and verification of operation in conjunction with other products, except those expressly designated by IBM, is the user's responsibility. IBM may have patents or pending patent applications covering subject matter in this help. The furnishing of this help does not give you any license to these patents. The following terms are trademarks of the IBM corporation in the United States and/or other countries: BookManager C/2 C Set/2 C Set ++ Common User Access CUA IBM LibraryReader Open Class Operating System/2 OS/2 OS/2 Warp Personal System/2 PS/2 Presentation Manager Systems Application Architecture SAA VisualAge WorkFrame WorkPlace Shell System Object Model SOM Windows is a trademark of Microsoft Corporation. Pentium is a trademark of Intel Corporation. Other company, product, and service names, which may be denoted by a double asterisk (**), may be trademarks of others. This publication contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independent created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact IBM Canada Ltd., Department 071, 1150 Eglinton Ave E., North York, ONT Canada M3C 1H7. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. ═══ 2. C/C++ Compiler Options ═══ Use the Compiler Options notebook to select which set of compiler options you want to change. You can set any of 10 option categories:  Processing  File  Listing  Debugging  Source  Object  Preprocessor  Other  User  SOM Some options have already been set to their default settings. You can change the default settings by clicking on them and selecting your preferred settings. See Command-line equivalents for a mapping between command-line options and options set in WorkFrame. ═══ 3. Command-line equivalents ═══ Points to remember:  The options you set in WorkFrame apply to all files in the project or subproject they are set for. On the command line, an option applies to all files after it on the command line. In WorkFrame, if you want an option to apply to some files but not others, divide the files into two separate subprojects, and set that option at the subproject level.  You can use command line syntax directly, in the User entry field on the User page. OPTION NOTEBOOK TAB PAGE CONTROL DESCRIPTION /B Other 1 Parameters passed to linker /C Processing step 1 Perform compile only /C- Processing step 1 Compile and link /D Preprocessor 2 User macros: Define /Fa File 1 Assembler /Fb File 1 Browser info /Fc Processing step 1 Perform syntax check only /Fe File 1 Executable /Fi File 2 Precompiled header file /Fm File 1 Linker map /Fo File 1 Object /Fr SOM 1 Produce file: Release order /Fs SOM 1 Produce file: IDL /Ft File 1 Template /Fw File 1 Intermediate /Fw Processing step 1 Create intermediate files only /G Object 1 Target processor /Ga SOM 1 Implicit SOM mode /Gb SOM 1 Disable direct access to attributes /Gd Object 1 Library linkage /Ge Processing step 1 Target /Gf Object 3 Use fast floating point method /Gh Object 3 Enable performance analyser /Gi Object 3 Use fast integer method /Gm Object 1 Library selection /Gn Object 3 Do not generate default library info, /Gr Object 3 Generate code to run at ring 0 /Gs Object 3 Remove stack probes /Gt Object 3 Use tiled memory /Gu Object 3 Remove unused data in intermediate files /Gv Object 2 Preserve DS and ES segments for VDD /Gw Object 3 Generate FWAIT after load /Gx Object 3 Remove C++ exception information /Gz SOM 1 Initialize during static initialization /H Other 1 Length of external names: /I File 2 Command line include path /J Other 1 Make default char type unsigned /L File 1 Listing /La Listing 1 Aggregate layout: Referenced /Lb Listing 1 Aggregate layout: All /Le Listing 1 Expand all macros /Li Listing 1 Expand include files: User /Lj Listing 1 Expand include files: User and system /Lp Listing 2 Page length /Ls Listing 1 Source /Lt Listing 2 Title /Lu Listing 2 Subtitle /Lx Listing 1 Cross reference: Referenced /Ly Listing 1 Cross reference: All /Mp Object 3 Use optlink linkage /N Debugging 1 Stop on error count of /Nd Object 2 Data segment /Nt Object 2 Code segment /O Object 2 Optimization: Speed /Oc Object 2 Optimization: Compact /Oi Object 2 Inline user code /Ol Object 3 Invoke intermediate code linker /Om Object 2 Limit working set size while optimizing /Op Object 2 Do not perform stack pointer optimization /Os- Object 2 Do not invoke the instruction scheduler /P Processing step 1 Run the preprocessor only /Pc Preprocessor 1 Retain comments /Pd Preprocessor 1 Send the output to stdout /Pe Preprocessor 1 No line numbers /Q Other 1 Display the logo /R Object 1 Executable environment /S Source 1 Language constructs /Sd- Source 2 Make .OBJ the default extension /Sg Source 2 Margins /Sh Source 2 Allow use of ddnames support /Si Source 2 Use precompiled header files /Sm Source 2 Ignore unsupported 16-bit keywords /Sn Source 2 Allow DBCS support /Sp Source 3 Pack structures and unions /Sq Source 2 Sequence numbers /Sr Source 1 Conversion rule /Ss Source 2 Allow use of '//' for comments /Su Source 3 Enum variables /Sv Source 2 Enable support for memory file /Td Source 1 Source file language /Ti Debugging 2 Debugging information: All /Tl Other 1 Preload compiler components /Tm Debugging 2 Use debug memory management /Tn Debugging 2 Debugging information: Line number /Tx Debugging 2 Full exception dump information /U Preprocessor 2 User macros: Remove /U* Preprocessor 2 User macros: Remove all user defined macros /V Other 1 Version string: /Wgrp Debugging 1 Diagnostic options /Wn Debugging 1 Compiler warning level /Xc File 2 Ignore command line include paths /Xi File 2 Ignore environment include paths /Xs SOM 1 Exclude files from implicit SOM mode ═══ 4. Processing ═══ Use the options on the Processing page to select the degree of compilation you want, and the type of executable produced. The options that control the degree of processing are in the Processing step group. Select the type of executable produced with the Target radio buttons. ═══ 4.1. Processing step ═══ Use the Processing step options to select the degree of compilation you want. You have the following options: Run the preprocessor only Runs the preprocessor only without running the compiler, and creates a preprocessor output file that has the same name as the source file, with a .I file name extension. Comments from the source code are not included in the preprocessor output file. The equivalent command-line option is /P+. Perform syntax check only Does only a syntax check on the source files. Only listing (.LST) files are produced when you select this option. The equivalent command-line option is /Fc+ . Create intermediate files only Creates intermediate code files only without completing compilation. You can name the files with the Intermediate entry field, on the first page under the Files tab. The equivalent comand-line option is /Fw+. See Using the Intermediate Code Linker for more information on intermediate code. Perform compile only, no link Indicates you want to compile but not link the program. The equivalent command-line option is /C+. Compile and link Indicates that you want to compile and link in one step, with the compiler invoking the linker. The equivalent command-line option is /C-. ═══ 4.2. Target ═══ Use the Target options to specify the type of file you want to create. Select one radio button from the group: EXE Build an .EXE file. This is the default setting. The equivalent icc command-line option is /Ge+. DLL Build a dynamic link library (.DLL) file. The equivalent icc command-line option is /Ge-. ═══ 5. File ═══ Use the File pages to set compiler options that control the files that the compiler produces. These files include:  Listing (/L)  Intermediate (/Fw)  Browser info (/Fb)  Object (/Fo)  Template (/Ft)  Assembler listing (/Fa)  Linker map (/Fm)  Executable (/Fe)  Precompiled header file (/Fi) You can control the way the compiler searches for include files with these options:  Ignore environment include paths (/Xi)  Ignore command line include paths (/Xc)  Command line include path (/I) ═══ 5.1. Listing ═══ Select the Listing check box to create a listing file from the source file. If you do not select the Listing checkbox, no listing file will be produced unless you select any of the following options on the Listing page of the Compiler Options notebook:  Source  Expand all macros  Aggregate layout  Cross reference  Expand include files. In the Listing entry field, type the name for the listing file. If you leave this field blank, the listing file will have the same name as the source file with an extension of .LST. Selecting this item is equivalent to specifying the /L+ or /Fl+ option on the icc command line. ═══ 5.2. Intermediate ═══ In the Intermediate entry field, type the names you want to give the intermediate code files. You must first select to generate intermediate files only, on the Processing page. If you leave this field blank, the intermediate code files will have the same name as the source file, with the file name extensions .W, .WH, and .WI. Selecting this item is equivalent to specifying a name with the /Fw+ option on the icc command line. For more information on intermediate code, please refer to Using the Intermediate Code Linker. ═══ 5.3. Browser info ═══ Use the Browser info options to select the type of browser file the compiler produces for use with the VisualAge C++ browser. The browser file will have the same name as the main source file, with a .PDB file name extension. All .PDB files are stored in the same directory as the object files. You can control the information as follows: None Do not produce browser files. Your executable will not be browsable. The equivalent command-line option is /Fb-. Full Produce browser files. Your executable can then be browsed. The equivalent command-line option is /Fb+. Compiler requested. Produce browser files that includes full information on system #include files. You only need to set this option if you get a compiler message that tells you it is required. The equivalent command-line option is /Fb*. ═══ 5.4. Object ═══ Select the Object check box to generate an object file. In the Object entry field, type the name of the object file. If you leave this field blank, the object file will have the same name as the source file, with a .OBJ file name extension. Specify a directory in the entry field to direct object files (and .PDB files if you are producing browser information) to that directory. Selecting this item is equivalent to specifying the /Fo+ option on the icc command line. ═══ 5.5. Template ═══ Select the Template check box to generate files for template resolution. In the Template directory entry field, type the name of the directory in which you wish to store the template files. If you leave this field blank, the template resolution files will be stored in the TEMPINC subdirectory under the current directory. Selecting this item is equivalent to specifying the /Ft+ option on the icc command line. ═══ 5.6. Assembler ═══ Select the Assembler check box to produce an assembler listing file that has the source code as comments. Note: This listing is not guaranteed to assemble. In the Assembler entry field, type the name you want to give the assembler file. If you leave this field blank, the assembler file will have the same name as the source file, with a .ASM file name extension. Selecting this item is equivalent to specifying the /Fa+ option on the icc command line. ═══ 5.7. Linker map ═══ Select the Linker map check box to create a linker map file, which lists the object modules in your output file, segment names, addresses, and sizes, and symbol information. In the Linker map entry field, type the name you want to give the linker map file. If you leave this field blank, the linker map file will have the same name as the source file, with a .MAP file name extension. Selecting this item is equivalent to specifying the /Fm+ option on the icc command line. ═══ 5.8. Executable ═══ In the Executable entry field, enter a name for the generated executable file or dynamic link library (DLL). If you leave this field blank, the executable file or DLL will have the same name as the first file, with a .EXE or .DLL file name extension, based on the Target you selected on the Processing step page. Entering a name here is equivalent to specifying the /Fename option on the icc command line. ═══ 5.9. Precompiled header file ═══ Select the Precompiled header file check box to generate a precompiled header file if none exists or if the existing one is out of date. Note: To get the most benefit from using precompiled header files, you may need to reorganize your source files, and use multiple precompiled header objects. See Using Precompiled Headers for more information on using precompiled headers. To use multiple precompiled header objects, use the /Siname and /Finame command-line options, which you can enter on the User notebook page. You can set these options on a subproject level, to use different precompiled header options for different sets of source files. Selecting this item is equivalent to specifying the /Fi+ option on the icc command line. ═══ 5.10. Ignore environment include paths ═══ Select the Ignore environment include paths check box to ignore the #include search path(s) given in the INCLUDE environment variable. #include files will not be searched for in the directories specified by the INCLUDE environment variable. Selecting this item is equivalent to specifying the /Xi+ option on the icc command line. To specify search directories for #include files, use the Command line include path entry field. ═══ 5.11. Ignore command line include paths ═══ Select the Ignore command line include paths to ignore the search paths specified in the Command line include path entry field. #include files will not be searched for in the directories specified in the Command line include path field. Note: Any search paths you specified on the User page are also ignored. Selecting this item is equivalent to specifying the /Xc+ option on the icc command line. ═══ 5.12. Command line include path ═══ In the Command line include path field, enter the pathnames of directories to be searched for #include files. Separate each pathname with a semicolon or enter one path per line. If you do not enter any paths in this field, the default is to search the directory of the source file (for user files only), and then search the paths given in the INCLUDE environment variable unless the Ignore environment include paths check box is selected. Entering paths in this field is equivalent to specifying the /Ipath option on the icc command line. ═══ 6. Listing ═══ Use the Listing page to set compiler options that allow you to control whether or not a listing file is produced, the type of information in the listing, and the appearance of the file. You have the following options: Source Include source code in listing file (/Ls) Expand all macros Expand all macros in listing file (/Le) Aggregate layout Control aggregate layout of struct and union variables in listing file (/La, /Lb) Cross reference Control cross reference listing in listing file (/Ly, /Lx) Expand include files Control expansion of #include files in listing file (/Li, /Lj) Page length Set page length of listing file (/Lp) Title Set title of listing file (/Lt) Subtitle Set subtitle in listing file (/Lu) ═══ 6.1. Source ═══ Select the Source check box to include the source code in the listing file. Selecting this item is equivalent to specifying the /Ls+ option on the icc command line. ═══ 6.2. Expand all macros ═══ Select the Expand all macros check box to produce a listing showing the contents of all the macros from your source program. Selecting this item is equivalent to specifying the /Le+ option on the icc command line. ═══ 6.3. Aggregate layout ═══ Use the Aggregate layout group of radio buttons to specify whether or not you want to include a layout of all struct and union variables with their offsets and lengths in the listing file. Select one of the radio buttons from the group: None Does not produce an aggregate layout. This is the default setting. Selecting this item is equivalent to specifying the /La- or /Lb- option on the icc command line. Referenced Includes a layout of only the referenced struct and union variables. Selecting this item is equivalent to specifying the /La+ option on the icc command line. All Includes a layout of all struct and union variables. Selecting this item is equivalent to specifying the /Lb+ option on the icc command line. ═══ 6.4. Cross reference ═══ Use the Cross reference group of radio buttons to specify whether or not to produce a cross reference listing. The generated cross-reference table identifies variables, structures, and function names along with the line numbers where the names are declared in the source code. Select one of the radio buttons from the group: None Does not produce a cross-reference table. This is the default setting. Selecting this item is equivalent to specifying the /Lx- or /Ly- option on the icc command line. Referenced Generates a cross-reference table of only the referenced variable, structure, and function names. Selecting this item is equivalent to specifying the /Lx+ option on the icc command line. All Generates a cross-reference table of all variable, structure, and function names. The table includes all local identifiers referenced by the user and all external identifiers. Selecting this item is equivalent to specifying the /Ly+ option on the icc command line. ═══ 6.5. Expand include files ═══ Use the Expand include files group of radio buttons to specify whether or not to expand #include files. Select one of the radio buttons from the group: None Does not expand #include files for the listing file. This is the default setting. Selecting this item is equivalent to specifying the /Li- or /Lj- option on the icc command line. User Produces a listing showing the contents of the user #include files from your source program. Selecting this item is equivalent to specifying the /Li+ option on the icc command line. User and system Produces a listing showing the contents of the user and system #include files from your source program. Selecting this item is equivalent to specifying the /Lj+ option on the icc command line. ═══ 6.6. Page length ═══ In the Page length entry field, type a number between 15 and 65535 to set the page length for the generated listing file. If you leave this field blank, the default page length of 66 lines will be used. Entering a number in this field is equivalent to specifying the /Lpnum option on the icc command line. ═══ 6.7. Title ═══ In the Title field, type some text to specify a title for the listing. The title name can be up to 256 characters long. You can also enter a subtitle string in the Subtitle field. Selecting this item is equivalent to specifying the /Lt"string" option on the icc command line. ═══ 6.8. Subtitle ═══ In the Subtitle field, type some text to specify a subtitle for the listing. The subtitle name can be up to 256 characters long. You can also enter a Title string in the Title field. Selecting this item is equivalent to specifying the /Lu"string" option on the icc command line. ═══ 7. Debugging ═══ Use the Debugging page to set compiler options that are useful for debugging your programs. The information generated by the VisualAge C++ debugger and compiler as a result of these options are provided to help you diagnose problems in your code. Do not use the debugging information as a programming interface. You have the following options: Debugging information Control debugging information for debugger (/Ti, /Tn) Stop on error count of Set error count to stop compile on (/N) Compiler warning level Specify type of messages to produce (/Wn) Diagnostic options Control groups of diagnostic messages (/Wgrp) Use debug memory management Use debug memory management functions (/Tm) Full exception dump information Provide machine-state dump when exception occurs (/Tx) ═══ 7.1. Debugging information ═══ Use the Debugging information check box to produce debugging information for use by the VisualAge C++ debugger. You can produce the following levels of debugging information: None No debugging information is produced. Your executable cannot be debugged with the VisualAge C++ debugger. The equivalent command-line option is /Ti-. Line number Only line number information is produced. You can use the debugger to single-step through the source view of program, but cannot view variables. The equivalent command-line option is /Tn+. All Complete debugging information is produced. You can use the full capability of the debugger when debugging your program. Note: If you used optimizing options, then the debugger can only provide limited information. See Generating Debugger Information. The equivalent command-line option is /Ti+. ═══ 7.2. Stop on error count of ═══ In the Stop on error count of field, type a value between 1 and 65535 to indicate the maximum number of errors at which to abort compilation. If you leave this field blank, compilation will continue until it is completed or until an unrecoverable error is encountered. The type of error message (Info, Warning, Error, or Severe) that increments the error counter is determined by the Compiler warning level option. Selecting this item is equivalent to specifying the /Nnum option on the icc command line. ═══ 7.3. Compiler warning level ═══ Use the Compiler warning level setting to specify the type of messages you want the compiler to produce. The type of compiler message that you indicate here is also used to determine which type of error message will cause the error counter to be incremented. Select one radio button from the group: Severe Produce only severe error messages. The equivalent command-line option is /W0. Error Produce only severe errors and errors. The equivalent command-line option is /W1. Warning Produce severe errors, errors, and warnings. The equivalent command-line option is /W2. Info Produce all error message types (severe errors, errors, warnings, and information). This is the default setting. The equivalent command-line option is /W3. ═══ 7.4. Diagnostic options ═══ From the Diagnostic options list box, select the diagnostic messages you want generated. The level of diagnostic messages generated is controlled by that specified in the Compiler warning level option. For example, if you set the compiler warning level to Warning, then diagnostic messages that are only at the Information level do not appear. The diagnostic options help you examine your source code for possible programming errors, weak programming style, and other information about the structure of your program. If you do not select any diagnostic messages from this list box, none will be generated. Selecting items from the Diagnostic options list box is equivalent to specifying the /Wgrp options on the icc command line. ═══ 7.5. Use debug memory management ═══ Select the Use debug memory management check box to instruct the compiler to use the debug memory management functions ( _debug_calloc, _debug_malloc, new, and so on). Selecting this option also defines the __DEBUG_ALLOC__ macro. Selecting this item is equivalent to specifying the /Tm option on the icc command line. ═══ 7.6. Full exception dump information ═══ Select the Full exception dump information check box to provide a complete machine-state dump when an exception occurs. If this option is not selected, only the exception message and address is provided when an exception occurs. Selecting this item is equivalent to specifying the /Tx option on the icc command line. ═══ 8. Source ═══ Use the Source page to set compiler options that allow you to control how the VisualAge C++ compiler interprets your source file. These options are especially useful, for example, if you are concerned with migrating code or ensuring consistency with a particular language or standard. You have the following options: Source file language Set default language (C or C++) of source files (/Td, /Tdc, /Tdp) Language constructs Set language standard (/S) Conversion rule Set type conversion rules (/Sr) Use precompiled header files Use precompiled header files, if current (/Si) Ignore unsupported 16-bit keywords Ignore unsupported 16-bit keywords (/Sm) Make .OBJ the default extension Assume file names without extensions are object files (/Sd) Allow use of '//' for comments Allow use of // comments in C files (/Ss) Allow DBCS support Allow use of DBCS symbols in source code (/Sn) Allow use of ddnames Allow use of ddnames in source code (/Sh) Enable support for memory file Allow use of memory files (/Sv) Margins Set margins for source files (/Sg) Sequence numbers Ignore text in sequence-number columns (/Sq) Enum variables Control size of enum variables (/Su) Packed structures and union variables Set alignment of data items within structs and unions (/Sp) ═══ 8.1. Source file language ═══ Use the Source file language setting to specify the default language (C or C++) for source files. Select one radio button from the group: Compiler extension Use the file name extension of the source file to determine its language. .CPP and .CXX files are compiled as C++ files and .C and all other unrecognized files are compiled as C files. This is the default setting. The equivalent icc command-line option is /Td. C Compile all source and unrecognized files as C files. The equivalent icc command-line option is /Tdc. C++ Compile all source and unrecognized files as C++ files and ensure that template functions are resolved correctly. The equivalent icc command-line option is /Tdp. ═══ 8.2. Language constructs ═══ Use the Language constructs setting to specify the default language standard. Select one radio button from the group: ANSI Allow only those extensions that conform to the American National Standards Institute (ANSI). The equivalent icc command-line option is /Sa. SAA level 2 Allow only those extensions defined by the SAA Level 2 specifications. This option is only valid for C files. The equivalent icc command-line option is /S2. Extended Allow all VisualAge C++ language extensions. This is the default setting. The equivalent icc command-line option is /Se. Compatibility Allow constructs compatible with older levels of the C++ language. This option is only valid for C++ files. The equivalent icc command-line option is /Sc. ═══ 8.3. Conversion rule ═══ Use the Conversion rule setting to set type conversion rules. This option is only valid for C source files. For C++, the conversion rule is to preserve accuracy. Select one radio button from the group: Preserve sign Preserve the sign of the number being converted. This is an old-style rule that is non-conformant to ANSI specifications. The equivalent icc command-line option is /Sr+. Preserve accuracy Preserve the accuracy of the number being converted. This new-style rule is equivalent to specifying the /Sr- option on the icc command line, and is the default setting. ═══ 8.4. Use precompiled header files ═══ Select the Use precompiled header files check box to use precompiler header files if they exist and are current. Note: To get the most benefit from using precompiled header files, you may need to reorganize your source files, and use multiple precompiled header objects. See Using Precompiled Headers for more information on using precompiled headers. To use multiple precompiled header objects, use the /Siname and /Finame command-line options, which you can enter on the User notebook page. You can set these options on a subproject level, to use different precompiled header options for different sets of source files. Selecting this item is equivalent to specifying the /Si+ option on the icc command line. ═══ 8.5. Ignore unsupported 16-bit keywords ═══ Select the Ignore unsupported 16-bit keywords check box to ignore unsupported 16-bit keywords, such as near and far. Leave this check box blank if you want to treat unsupported 16-bit keywords like any other identifier. Selecting this item is equivalent to specifying the /Sm+ option on the icc command line. ═══ 8.6. Make .OBJ the default extension ═══ Select the Make .OBJ the default extension check box to set the default file name extension to .OBJ. This means that if an extension is not specified with a file, then it is assumed to be an object file. Selecting this item is equivalent to specifying the /Sd- option on the icc command line. If you do not accept .OBJ as the default extension in this check box, then the default file name extension is .C if you selected C for the Source file language option, and .CPP if you selected C++. The extension determines whether the file is treated as a C source file or as an object file. If the file has an extension of .C, then it is compiled and linked. If the file has an extension of .OBJ, then it is only linked. ═══ 8.7. Allow use of '//' for comments ═══ Select the Allow use of '//' for comments check box to allow the double slash format of indicating comments. This type of comment is ended by a carriage return. Note: This option is only valid for C files. C++ allows double slashes to indicate comments as part of the language. Selecting this item is equivalent to specifying the /Ss+ option on the icc command line. ═══ 8.8. Allow DBCS support ═══ Select the Allow DBCS support check box to allow the use of double-byte character set (DBCS) symbols in the source code. Selecting this item is equivalent to specifying the /Sn+ option on the icc command line. ═══ 8.9. Allow use of ddnames support ═══ Select the Allow use of ddnames support check box to allow the use of ddnames in the source code. Selecting this item is equivalent to specifying the /Sh+ option on the icc command line. ═══ 8.10. Enable support for memory file ═══ Select the Enable support for memory file check box to allow the use of memory files. Selecting this item is equivalent to specifying the /Sv+ option on the icc command line. ═══ 8.11. Margins ═══ Use the Margins setting to specify values for the input file margins. Text which is outside the specified margins is ignored. The Margins setting is useful for importing source files that were created on other systems and contain characters you want to ignore. This option is only valid for C source files.  In the Left entry field, type a value between 1 and 65535 to specify a value for the left margin.  In the Right entry field, type an asterisk to denote no right margin, or enter a value between 1 and 65535. The value specified for the right margin must be greater than or equal than that specified for the left margin. Selecting this item is equivalent to specifying the /Sg[l][,r|*] option on the icc command line, where l and r are integers indicating the left and right margins, respectively. ═══ 8.12. Sequence numbers ═══ Use the Sequence numbers setting to specify columns in which sequence column numbers appear, and ignore the text in those columns. Setting Sequence numbers is useful for importing source files from systems that use sequence numbers. This option is only valid for C source files.  In the Left entry field, type a value from 1 to 65535 to specify the left sequence column.  In the Right entry field, type an asterisk to denote no right sequence column, or enter a value from 1 to 65535. The value specified for the right column must be greater than or equal to the value specified for the left column. Selecting this item is equivalent to specifying the /Sq[l][,r] option on the icc command line, where l and r are integers respectively indicating the left and right columns where sequence numbers appear. ═══ 8.13. Enum variables ═══ Use the Enum variables setting to control the size of enum variables in the source code. Select one radio button from the group: SAA Use the SAA rules, that is, make all enum variables the size of the smallest integral type that can contain all variables. This is the default setting. The equivalent icc command-line option is /Su-. 1 byte Make all enum variables 1 byte. The equivalent icc command-line option is /Su1. 2 byte Make all enum variables 2 bytes. The equivalent icc command-line option is /Su2. 4 byte Make all enum variables 4 byte. The equivalent icc command-line option is /Su4. ═══ 8.14. Packed structures and unions ═══ Use the Packed structures and unions setting to set the alignment or packing of data items within structs and unions. Select one radio button from the group: 1 byte Set the most restrictive alignment of structure and union members to 1-byte. The equivalent icc command-line option is /Sp1. 2 byte Set the most restrictive alignment of structure and union members to 2-byte. The equivalent icc command-line option is /Sp2. 4-byte Set the most restrictive alignment of structure and union members to 4-byte. The equivalent icc command-line option is /Sp4. ═══ 9. Object ═══ Use the Object page to set compiler options that allow you to specify the type of code that the compiler will produce. You have the following options: Executable environment Specify VisualAge C++ runtime environment, or subsystem without runtime environment (/R) Library selection Select type of library to link to (/Gm) Library Linkage Link to DLL or .LIB versions of runtime libraries (/Gd) Target processor Optimize for processor type (/Gnum) Turn on optimization Select type of optimization (/O, /Oc) Do not perform stack pointer optimization Turn off optimizations involving the stack pointer (/Op-) Limit working set size while optimizing Limit working set size to approximately 35Mb (/Om) Preserve DS and ES segments for VDD Control handling of DS and ES registers (/Gv) Do not invoke the instruction scheduler Control invocation of instruction scheduler during optimization (/Os-) Data segment Rename default data and constant segments (/Nd) Code segment Set default name for code segment (/Nt) Inlining Control inlining of user code (/Oi) Enable performance analyzer Enable executable for performance analysis (/Gh) Remove stack probes Remove stack probes (/Gs) Remove C++ exception information Remove exception-handling information from code (/Gx) Do not generate default library info Do not identify default libraries for linker (/Gn) Use optlink linkage Specify linkage to use for functions (/M) Use tiled memory Enable all variables to be passed to 16-bit functions (/Gt) Use fast floating point method Use fast floating-point execution (/Gf) Generate code to run at ring 0 Generate code that runs at ring 0 instead of ring 3 (/Gr) Remove unused data in intemediate files Remove unused data with the intermediate code linker (/Gu) Invoke intermediate code linker Use intermediate code linker when compiling (/Ol) Generate FWAIT after load Generate FWAIT instruction after each floating-point load instruction (/Gw) Use fast integer method Use fast integer execution (/Gi) ═══ 9.1. Executable environment ═══ Use the Executable environment setting to control the executable runtime environment. Select one radio button from the group: Runtime Generate executable code that runs in a VisualAge C++ runtime environment. This is the default setting. The equivalent icc command-line option is /Re. Subsystem Generate executable code that can be used as a subsystem without a runtime environment. The equivalent icc command-line option is /Rn. ═══ 9.2. Library selection ═══ Use the Library selection setting to specify the version of the library you want to link to. Select one radio button from the group: Single-thread Link with the single-thread version of the library (no multithread capabilities). This is the default setting. The equivalent icc command-line option is /Gm-. Multithread Link with the multithread version of the library. The equivalent icc command-line option is /Gm+. ═══ 9.3. Library linkage ═══ Use the Library linkage setting to specify how you want to link to the runtime libraries. Select one radio button from the group: Static Statically link to the runtime libraries. All external names beginning with the letters Dos, Kbd, and Vio are reserved. This is the default setting. The equivalent icc command-line option is /Gd-. Dynamic Dynamically link to the runtime libraries. The equivalent icc command-line option is /Gd+. ═══ 9.4. Target processor ═══ Use the Target processor setting to specify which processor to optimize for. Select one radio button from the group: 80386 Optimize code for use with the 80386 processor. The code generated will also run on a 80486 or Pentium processor. This is the default setting. The equivalent icc command-line option is /G3. 80486 Optimize code for use with the 80486 processor. The code generated will also run on a 80386 or Pentium processor. The equivalent icc command-line option is /G4. Pentium Optimize code for use with the Pentium processor. The code generated will also run on a 80386 or 80486 processor. The equivalent icc command-line option is /G5. ═══ 9.5. Optimization ═══ Use the Optimization options to select the type of optimization you want performed. You can select the following options: None Perform no optimization. Select this option when you want to debug your application. The equivalent command-line option is /O-. Compact Optimize for speed and size. The compiler will perform all optimizations that do not increase the size of the executable. The equivalent command-line option is /Oc+. Speed Optimize for speed. The compiler will perform all optimizations, including those that increase the size of the executable (such as loop unrolling). The equivalent command-line option is /O+. ═══ 9.6. Do not perform stack pointer optimization ═══ Select the Do not perform stack pointer optimization check box to turn off optimizations that involve the stack pointer. Note: Turning off stack pointer optimization is not recommended because it decreases the performance of your executable file. Selecting this item is equivalent to specifying the /Op- option on the icc command line. If you do not select this option, the default is to perform stack pointer optimization if the Turn on optimization (/O) option is selected. ═══ 9.7. Limit working set size while optimizing ═══ Select the Limit working set size while optimizing check box to limit the working set size to approximately 35Mb while optimizing. If you do not select this option, the default is to impose no limit on the working set size. Selecting this item is equivalent to specifying the /Om option on the icc command line. ═══ 9.8. Preserve DS and ES segments for VDD ═══ Select the Preserve DS and ES segments for VDD check box to control handling of DS and ES registers. This option is provided for virtual device driver (VDD) development, which is only available for C programs. If you select this item, the DS and ES registers are saved on entry to an external function and set to the selector for DGROUP, and then restored on exit from the function. Selecting this item is equivalent to specifying the /Gv+ option on the icc command line. ═══ 9.9. Do not invoke the instruction scheduler ═══ Select the Do not invoke the instruction scheduler check box to instruct the compiler not to use the instruction scheduler even though the Turn on optimization (/O) option is selected. If you do not select this option, the default is to invoke the instruction scheduler if and only if the Turn on optimization option is selected. Selecting this item is equivalent to specifying the /Os- option on the icc command line. ═══ 9.10. Data segment ═══ Use this option to specify the names of default data, uninitialized data, and constant segments as nameDATA32, nameBSS32, and nameCONST32_RO. You can then give the segments special attributes by referring to their names. The renamed segments are not placed in the default data group. If you leave this field blank, the default names DATA32, BSS32, and CONST32_RO are used. You can also set a default name for code and text segments, with the Code segment option. You can rename the exception-handling segments with the /Nx option in the User entry field on the User page. Specifying a data segment name is equivalent to specifying the /Ndname option on the icc command line. ═══ 9.11. Code segment ═══ In the Code segment entry field, type the default name prefix you want to use for code and text segments. The name nameCODE32 is used, where name is the name you entered. You can then give the segment special attributes by referring to its name. If you leave this field blank, the default name CODE32 is used. You can also set the name for default data and constant segments, with the Data segment option. You can rename the exception-handling segments with the /Nx option in the User entry field on the User page. Specifying a code segment name is equivalent to specifying the /Ntname option on the icc command line. ═══ 9.12. Inlining ═══ Use the Inlining setting to control inlining of user code.  Select the Turn on check box to inline all user functions qualified with the _Inline (for C) or inline (for C++) keyword. Selecting this item is equivalent to specifying the /Oi+ option on the icc command line. Note: When the Turn on optimization (/O) option is active, inlining is turned on by default.  In the Threshold entry field, type a number from 1 to 65535 to inline all user functions qualified with the _Inline or inline keyword or that are smaller than the Threshold value in abstract code units. If you leave this field blank, all user functions qualified with the _Inline or inline keyword will be inlined regardless of their size. Selecting this item is equivalent to specifying the /Oivalue option on the icc command line. ═══ 9.13. Enable performance analyzer ═══ Select the Enable performance analyzer check box to enable code to be run by the Performance Analyzer and other profiling tools by generated hooks in function prologs. Note: To enable code for the Performance Analyzer, you must also select the Generate debugging information check box on the Debugging page of the Compiler Options notebook. Selecting this item is equivalent to specifying the /Gh+ option on the icc command line. ═══ 9.14. Remove stack probes ═══ Select the Remove stack probes check box to remove stack probes from the code generated by the compiler. Selecting this item is equivalent to specifying the /Gs+ option on the icc command line. ═══ 9.15. Remove C++ exception information ═══ Select the Remove C++ exception information check box to remove C++ exception handling information from the code generated by the compiler. Selecting this item is equivalent to specifying the /Gx+ option on the icc command line. ═══ 9.16. Do not generate default library info ═══ Select the Do not generate default library info check box to indicate that the compiler should not provide linker information about the default libraries according to other Object code options. All libraries you want to link to must then be explicitly defined for the linker. Selecting this item is equivalent to specifying the /Gn+ option on the icc command line. If you do not select this item, the compiler identifies the the default libraries for the linker to use, according to other Object code options. This is equivalent to specifying the /Gn- option on the icc command line. ═══ 9.17. Use optlink linkage ═══ Select the Use optlink linkage check box to indicate that you want to use _Optlink linkage for functions. You must include the Programmer's Toolkit header files to call OS/2 application programming interfaces (API). Selecting this item is equivalent to specifying the /Mp+ option on the icc command line. If you do not select this option, _System linkage for functions will be used. You must include the VisualAge C++ library header files to call VisualAge C++ functions. This is equivalent to specifying the /Ms+ option on the icc command line. You can also use _cdecl and _stdcall linkage, by specifying /Mc or /Mt in the User entry field on the User page. ═══ 9.18. Use tiled memory ═══ Select the Use tiled memory check box to enable all variables to be passed to 16-bit functions. Static and external variables are mapped into 16-bit segments. Variables larger than 64K will be aligned on, but will still cross, 64K boundaries. When this option is selected, the memory management functions calloc, free, malloc, and realloc are mapped to the tiled versions _tcalloc, _tfree, _tmalloc, and _trealloc. Selecting this item is equivalent to specifying the /Gt+ option on the icc command line. ═══ 9.19. Use fast floating point method ═══ Select the Use fast floating point method check box to indicate that you want the compiler to use fast floating-point execution. If your program does not need to abide by ANSI rules regarding the processing of double and float types, you can use this option to increase your program's performance. Because the floating-point method does not perform all the conversions specified by the ANSI standards, the results obtained may differ from results obtained using ANSI methods, but are often more precise. Selecting this item is equivalent to specifying the /Gf+ option on the icc command line. ═══ 9.20. Generate code to run at ring 0 ═══ Select the Generate code to run at ring 0 check box to indicate that you want to generate object code to run at ring 0. Use this option if you are writing code such as device drivers or operating systems, that will run at ring 0 instead of ring 3. If you select this item, you should also set the Executable environment option to Subsystem. Set this option on the first page under the Objects notebook tab. Selecting Generate code to run at ring 0 is equivalent to specifying the /Gr+ option on the icc command line. ═══ 9.21. Remove unused data in intermediate files ═══ Select the Remove unused data in intermediate files check box to tell the compiler that external functions may not use data defined in the intermediate files being linked. The data is only used within the intermediate files being linked, with the exception of data qualified with the _Export keyword. Selecting this item is equivalent to specifying the /Gu+ option on the icc command line. If you do not select this option, external functions will be allowed to use data in the intermediate files being linked (equivalent to specifying the /Gu- option on the icc command line). ═══ 9.22. Invoke intermediate code linker ═══ Select the Invoke intermediate code linker check box to instruct the compiler to pass code through the intermediate code linker before generating an object file. Selecting this item is equivalent to specifying the /Ol+ option on the icc command line. See Using the Intermediate Code Linker for more information on intermediate code. ═══ 9.23. Generate FWAIT after load ═══ Select the Generate FWAIT after load check box to generate the FWAIT instruction after each floating-point load instruction. This allows the program to take a floating-point stack overflow exception immediately after the load instruction that caused it. Note: This option is not recommended because it increases the size of your executable file and greatly decreases its performance. Selecting this item is equivalent to specifying the /Gw+ option on the icc command line. ═══ 9.24. Use fast integer method ═══ Select the Use fast integer method check box to use fast integer execution. If you are shifting bits by a variable amount, you can use fast integer execution to ensure that for values greater than 31, the bits are shifted by the result of a modulo 32 of the value. Otherwise, the result of the shift is 0. Note: If your shift value is a constant greater than 32, the result will always be 0. Selecting this item is equivalent to specifying the /Gi+ option on the icc command line. ═══ 10. Preprocessor ═══ Use the Preprocessor page to set compiler options that let you control the use of the preprocessor. You have the following options: Send the output to stdout Send preprocessor output to sdout (/Pd) Retain comments Retain source code comments in preprocessor output (/Pc) No line numbers Suppress creation of #line directives in preprocessor output (/Pe) Remove all user-defined macros Remove user-defined macros from preprocessor output (/U*) Remove Remove specified macros from preprocessor output (/Umacro Define Define preprocessor macros (/Dname) ═══ 10.1. Send the output to stdout ═══ Select Send the output to stdout check box to send the preprocessor output to the stream specified by stdout. Selecting this item is equivalent to specifying the /Pd+ option on the icc command line. If you do not select this item, the created preprocessor output file will have the same name as the source file with a .I file name extension. This is equivalent to specifying the /Pd- option on the icc command line. ═══ 10.2. Retain comments ═══ Select the Retain comments check box to include the source code comments in the generated preprocessor output file. Selecting this item is equivalent to specifying the /Pc+ option on the icc command line. ═══ 10.3. No line numbers ═══ Select the No line numbers check box to suppress the creation of #line directives in preprocessor output. Selecting this item is equivalent to specifying the /Pe+ option on the icc command line. ═══ 10.4. Remove all user-defined macros ═══ Select the Remove all user-defined macros check box to remove all macros that are user-defined. Note: This option does not affect macros such as _DATE_, _TIME_, _TIMESTAMP_, _FILE_, and _FUNCTION_, nor does it undefine macros defined in source code. Selecting this item is equivalent to specifying the /U* option on the icc command line. ═══ 10.5. Remove ═══ In the Remove entry box, specify the names of macros you want to remove from the preprocessor output. For example, if you want to remove the macros _MY_MACRO_ and _EDS_MACRO_, then you would enter: _MY_MACRO_ _EDS_MACRO_ Entering the names of macros in this field is equivalent to specifying the /Uname option on the icc command line. ═══ 10.6. Define ═══ In the Define entry box, specify the names and values for each preprocessor macro you want to define. For example, if you want to define the macros _MY_MACRO_ to the value 43 and _EDS_MACRO_, to the value 28, then you would enter: _MY_MACRO_=43 _EDS_MACRO_=28 The macros you define in the Define list box will override macros already defined in your source code. Selecting this item is equivalent to specifying the /Dname[::n], or /Dname[=n] option on the icc command line. ═══ 11. Other ═══ Use the Other page to set VisualAge C++ compiler options that control linker parameters, logo display, default char type, and other compiler options. You have the following options: Make default char type unsigned Set unspecified char to unsigned char, for arithmetic and compare operations (/J) Display the logo Display compiler logo when compiler invoked (/Q-) Length of external names Set significant length for external names (/Hnum) Version string Set version string (/V) Parameters passed to linker Pass linker command-line options to linker (/B"options") Preload compiler components Preload compiler components as required (/Tl) Timeout Set number of minutes preloaded components stay in memory (/Tlminutes) ═══ 11.1. Make default char type unsigned ═══ Select the Make default char type unsigned check box to set unspecified char declarations to unsigned char, for arithmetic and compare operations. Selecting this item is equivalent to specifying the /J+ option on the icc command line. If you do not select this option, unspecified char declarations will be set to signed char. ═══ 11.2. Display the logo ═══ Select the Display the logo check box to display the compiler logo when the compiler is invoked. The logo is displayed on stderr. Selecting this item is equivalent to specifying the /Q- option on the icc command line. ═══ 11.3. Length of external names ═══ In the Length of external names entry field, type a number from 6 to 255 to set the significant length for external names. Setting this option is equivalent to specifying the /Hnum option on the icc command line. ═══ 11.4. Version string ═══ In the Version string entry field, type a text string up to 256 characters long to include in the object and executable files. This is equivalent to specifying the /V"string" option on the icc command line. ═══ 11.5. Parameters passed to linker ═══ In the Parameters passed to linker entry list box, type any parameters you want passed to the linker. The icc default parameters are also passed. This is equivalent to specifying the /B"options" option on the icc command line. ═══ 11.6. Preload compiler components ═══ Select the Yes checkbox for the Preload compiler components settings to preload compiler components as they are required. Once a component is loaded, it remains in memory for 10 minutes, unless you specified a preferred timeout length in the Timeout field. If it is not referenced in that time (or the compiler is invoked again with this option turned off), it is unloaded. Each compiler component has its own timer. Note: This option is not available if you are using the OS/2 2.0 level of the operating system without the Service Pack updates. Selecting this item is equivalent to specifying the /Tl option on the icc command line. ═══ 11.7. Timeout ═══ Enter an integer between 1 and 65535 in the Timeout entry field to indicate the number of minutes you want preloaded compiler components to remain in memory. If you leave this field blank, the preloaded compiler components will remain in memory for 10 minutes. Selecting this item is equivalent to specifying the /Tl:value option on the icc command line, where value is the timeout value for the preloaded compiler components. ═══ 12. User ═══ Use the User page to enter options that are passed verbatim to the compiler. Enter the options in the User entry field. ═══ 12.1. User ═══ In the User entry field, type any options that you want passed to the compiler, verbatim. Use the command-line syntax for all compiler options. See Compiler Options for a summary of options and their command-line syntax. Note: No consistency checking or conflict resolution is performed on any options you enter in this field until the compiler is actually invoked. ═══ 13. SOM ═══ Use the controls on the SOM page to set options that relate to SOM code. You can choose to:  Turn on implicit SOM mode  Disable direct access to attributes  Exclude files from implicit SOM mode  Initialize during static initialization  Write the release order to a file  Produce IDL files ═══ 13.1. Implicit SOM mode ═══ This option turns on implicit SOM mode, and also causes the file som.hh to be included. It is equivalent to placing #pragma SOMAsDefault(on) at the start of the translation unit. All classes are implicitly derived from SOMObject until a #pragma SOMAsDefault(off) is encountered. The equivalent command-line option is /Ga. For further details, see the Programming Guide. ═══ 13.2. Disable direct access to attributes ═══ This option instructs the compiler to disable direct access to attributes. Instead, the get and set methods are used. This is equivalent to specifying #pragma SOMNoDataDirect(on) as the first line of the translation unit. The equivalent command-line option is /Gb. For further details, see the Programming Guide. ═══ 13.3. Exclude files from implicit SOM mode ═══ Use this option to exclude files in the directories specified in the Directories to be excluded list when implicit SOM mode is turned on (when classes are implicitly derived from SOM). This option is valid only when implicit SOM mode is enabled. It allows you to exclude the classes contained in the specified include files from being made into implicit SOM classes. The equivalent command-line option is /Xs. ═══ 13.4. Directories to be excluded ═══ Use this entry field to enter the directories you want to exclude from implicit SOM mode. You must first select the Exclude files from implicit SOM mode checkbox. ═══ 13.5. Initialize during static initialization ═══ Use this option to initialize SOM classes at their point of first use during the execution of your program. By default, all SOM classes used in your program are initialized at static initialization time. This makes your program faster, but may result in the initialization of classes that are not used. When you set this option, SOM classes are not initialized until they are actually referenced in your program at run time. This avoids the initialization of unused classes, but requires a run-time check before every SOM class object reference to ensure that the class has been initialized. The equivalent command-line option is /Gz. For further details, see the Programming Guide. ═══ 13.6. Produce file ═══ The Produce file group has two options: Release order Use this option to have the compiler write the release order of the specified class to stdout. The release order is written in the form of a SOMReleaseOrder pragma. You can capture the output from this option when developing new SOM classes, and include the pragma in the class definition. The equivalent command-line option is /Fr. For further details, see the Programming Guide. IDL Use this option to have the compiler generate an IDL file if a file with an .hh extension is explicitly specified on the command line. You can specify a path and name for the IDL file. If you do not specify a name for the file, then an IDL file is created for every .hh file specified, and placed in the current directory. If you set this option off, then IDL files are not generated. The equivalent command-line option is /Fs. ═══ Keys Help ═══ The list of keys is arranged in groups. Use:  HELP KEYS to get help  SYSTEM KEYS to switch between programs  WINDOW KEYS to move around in a program window  POP-UP WINDOW KEYS to make a selection in a pop-up window  EDITING KEYS to make changes in a pop-up window. When two key names are joined by a plus sign (+), use these two keys together. Hold down the first key and press the second key. HELP KEYS F1 Get help F2 Get extended help (from within any help window) F9 Go to a list of keys (from within any help window) F11 or Shift+F1 Go to the help index (from within any help window) Esc Cancel help Alt+F4 Close the help window Shift+F10 Get help for help SYSTEM KEYS Alt+Esc Switch to the next program, including full-screen programs Alt+Tab Switch to the next windowed program Ctrl+Esc Switch to the Task List WINDOW KEYS F10 Go to/from the action bar Arrow keys Move among choices End Go to the last choice in a pull-down Esc Cancel a pull-down, the system menu, or window Home Go to the first choice in a pull-down PgUp Scroll the contents of the window up one page PgDn Scroll the contents of the window down one page Underlined letter Move among the choices on the action bar and select pull-down items Alt Go to/from the action bar Alt+F4 Close the window Alt+F5 Restore the window Alt+F7 Move the window Alt+F8 Size the window Alt+F9 Minimize the window Alt+F10 Maximize the window Ctrl+PgDn Scroll the contents of the window right one page Ctrl+PgUp Scroll the contents of the window left one page Shift+Esc or Alt+Spacebar Go to/from the system menu Shift+Esc or Alt Go to/from the system menu of a text window POP-UP WINDOW KEYS Enter Complete the pop-up window Esc Cancel the pop-up window Spacebar Set a check box on/off or perform the task described on the selected pushbutton Tab Move to the next entry field or check box EDITING KEYS Backspace (left arrow delete) Delete the character to the left of the cursor Del Delete the character at the cursor End or Ctrl+Right Arrow key Move to the end of a field Home or Ctrl+Left Arrow key Move to the beginning of a field. ═══ Conflicting Compiler Options ═══ You have specified two or more options that are incompatible. Select Ignore conflict to continue and let one option take precedence, as indicated. Select Cancel to return to the Compiler Options settings notebook. The following rules apply if you specify an incompatible option:  You indicated that you wanted to perform syntax checking only, as well as one or more of the following: run the preprocessor; create a listing title, subtitle, and page length without actual output; any object code control option; any debug option; compile and not link; a version string; parameters to pass to the linker. The option to perform syntax checking takes precedence over the other options selected so the other options are ignored.  You indicated that you wanted to run the preprocessor, as well as one or more of the following: create any file listing; any listing option; any object code control option; any debug option; compile and not link; a version string; parameters to pass to the linker. The option to run only the preprocessor takes precedence over the other options selected so that other options are ignored.  You indicated that you wanted to compile only (without performing the link step) and also that you wanted to create an .EXE file, or a linker map. The option to compile only takes precedence.  You indicated that you did not want to create an object file but also that you wanted to generate debugging and/or profiling information. The option not to create an object file takes precedence.  You indicated that you wanted to enable subsystem development but also indicated you wanted to use ddnames. The option to enable subsystem development takes precedence.  You indicated that you wanted to use tiled memory, but also that you wanted to use the debug memory management functions. The option to use the tiled memory takes precedence.  You indicated that you wanted to generate executable code that runs in a VisualAge C++ runtime environment, but also that you wanted to generate object code to run at ring 0. The option to generate executable code to run in the runtime environment takes precedence. ═══ Ignore conflict ═══ Click on the Ignore conflict push button to indicate that you want to save your changes and use the options that take precedence. ═══ Cancel ═══ Click on the Cancel push button to return to the Compiler Options notebook and correct conflicting options. ═══ OK ═══ Click on the OK push button to save the settings you made and close the Compiler Options notebook ═══ Default ═══ Click on the Default pushbutton to set all the options in the Compiler Options notebook back to their default settings. ═══ Reset ═══ Click on the Reset push button to update the compiler options settings to their initial values. ═══ Cancel ═══ Click on the Cancel push button to close the Compiler Options notebook without saving any changes. ═══ Help ═══ Click on the Help push button to get help on the Compiler Options notebook. ═══ Reset Page ═══ Click on the Reset Page push button to update the compiler options settings in this page to their initial values. ═══ Default ═══ Click on the Default push button to update the compiler options with their default values. ═══ Help ═══ Click on the Help push button to get help on this page of the Compiler Options notebook. ═══ Message Help ═══ Explanation: You are using a compiler options file from a previous version of the WorkFrame product. Do you want to use the default option settings? Recovery: Select Yes to open the Compiler Options notebook with the default option settings. Select No to cancel the current operation. ═══ Message Help ═══ Explanation: The options file for your project has been corrupted. Recovery: Use the default options and then reset them to your preferred settings. ═══ Message Help ═══ Explanation: An error occurred while trying to allocate memory. There may be insufficient memory to complete the task. Recovery: Close one or more other tasks, and retry the command. ═══ Message Help ═══ Explanation: You have chosen to discard all the changes made to the Compiler Options settings. Are you sure you want to discard the changes? Recovery: Select the Yes push button if you want to discard the changes and exit from the Compiler Options notebook. Select the No pushbutton if you want to retain the changes and return to the previous page without exiting from the Compiler Options notebook ═══ Message Help ═══ Explanation: No files that match the specified file specifier were found. Do you want to ignore it? Recovery: Select Yes to ignore the file specifier, save the option settings, and close the Compiler Options notebook. Select No to return to the previous page without closing the Compiler Options notebook. ═══ Message Help ═══ Explanation: One or more of the specified paths does not exist. Do you want to ignore it? Recovery: Select Yes to ignore the specified path, save the current settings, and close the Compiler Options notebook. Select No to return to the previous page. See the OS/2* Return Codes Help for more information on the error. ═══ Message Help ═══ Explanation: One or more of the specified paths contains a directory name that is longer than the maximum length permitted by the operating system. Recovery: Enter a shorter directory name and try the command again. See the OS/2* Return Codes Help for more information on the error. ═══ Message Help ═══ Explanation: This field requires the names of one or more directory path names. The path name must not contain the name of a file. Recovery: Type a valid directory path name in the field. ═══ Message Help ═══ Explanation: The directory path name must be an existing path and must follow the naming conventions for directories:  The name must be 1 to 8 alphanumeric characters  The first character must be alphabetic  The name cannot contain embedded blanks, or the characters @, #, and $  If you are specifying more than one path name, separate each with a semicolon. Recovery: Type a valid directory path name in the field. See the OS/2* Return Codes Help for more information on the error. ═══ Message Help ═══ Explanation: You have chosen to reset the compiler options to their previous settings. Are you sure you want to reset the compiler options? Recovery: Select Yes if you want to reset the compiler option settings. Select No to retain their current settings. You are then returned to the Compiler Options notebook. ═══ Message Help ═══ Explanation: You have chosen to reset the compiler options to their default settings. Are you sure you want to update the compiler options with their default settings? Recovery: Select the Yes push button if you want to reset the compiler options to the default settings. Select the No push button if you want to retain their current settings. You are then returned to the Compiler Options notebook. ═══ Message Help ═══ Explanation: The application was unable to create a dialog panel for the Compiler Options notebook due to insufficient system resources. Recovery: Close one or more other tasks, and retry the command. ═══ Message Help ═══ Explanation: The system path length could not be obtained. Recovery: See the OS/2* Return Codes Help for more information on the error. ═══ Message Help ═══ Explanation: An integer between 1 and 65535 is expected for the Timeout field for preloaded compiler components. You may also leave this field blank. Recovery: Type a number between 1 and 65535, or leave the field blank. ═══ Message Help ═══ Explanation: An unknown error has been detected. Recovery: See the OS/2* Return Codes Help for more information on the error. ═══ Message Help ═══ Explanation: An integer between 1 and 65535 is expected for the Stop on error count of field. You may also leave this field blank. Recovery: Type a number between 1 and 65535, or leave the field blank. ═══ Message Help ═══ Explanation: An integer between 15 and 65535 is expected for the Page length field. Recovery: Type a number between 15 and 65535. ═══ Message Help ═══ Explanation: An integer between 6 and 255 is expected for the Length of external names field. Recovery: Type a number between 6 and 255. ═══ Message Help ═══ Explanation: An integer between 1 and 65535 is expected for the left and right margins. The right margin value must be greater than that specified for the left margin. Recovery: Type a number between 1 and 65535 for the right and left margin fields. Specify a number for the right margin that is greater than that specified for the left margin. ═══ Message Help ═══ Explanation: An integer between 1 and 65535 is expected for the left and right sequence numbers. The right sequence value must be an asterisk (*) to denote no right sequence column or an integer greater than that specified for the left sequence column. Recovery: Type a number between 1 and 65535 for the right and left sequence numbers. For the right sequence column, specify an asterisk or a number that is greater than that specified for the left sequence column. ═══ Message Help ═══ Explanation: An integer between 1 and 65535 is expected for the inlining threshold. You may also leave this field blank. Recovery: Enter a number between 1 and 65535 or leave the field blank. ═══ Message Help ═══ Explanation: There is not enough storage allocated to store the compile options string. Recovery: Use the Language Profile Management window to change one or both of the Maximum compile string and Maximum compile size field values in the language profile so that more storage is allocated. ═══ Message Help ═══ Explanation: You are using a Compiler Options file from a previous version of the WorkFrame product. Would you like to convert the old compiler option settings to the new version? Recovery: Select Yes to indicate that you want an automatic conversion to be performed using the old compiler options file. Note: Options have been added, changed, or deleted since the last version. Please read through the option settings in the Compiler Options notebook after the conversion has been completed. Select No to use the default options. ═══ Message Help ═══ Explanation: The compiler options dialog needs to store information with the project file. Because the project file does not exist yet, you cannot set the compiler options at this time. Recovery: For Version 1.1 of the WorkFrame/2, finish creating the project by specifying any other options (except those for the compiler), and then selecting the OK push button. Once the project has been created, you can set the compiler options from the Options pull down on the WorkFrame/2 menu bar. See the OS/2* Return Codes Help for more information on the error. ═══ Message Help ═══ Explanation: The specified file could not be found. A symbolic file name in the original source file might have caused this error. Occurrences of the indicated file will be commented out in the created makefile. Recovery: 1. Verify that the INCLUDE environment variable is set up correctly. 2. Verify that the file exists. 3. You can have the Make Make ignore the error by selecting the Ignore push button. The file will appear in the generated make file, but it will not be checked for any further include files. ═══ Message Help ═══ Explanation: Make Make could not acquire enough storage to complete the make file generation Recovery: Close other sessions, or make more room on the disk for the OS/2 swap file, then try the operation again. ═══ Message Help ═══ Explanation: The name of the specified #include file may be too long or may contain invalid characters. Recovery: Verify the name of the invalid #include file in the source. ═══ Message Help ═══ Explanation: The specified #include uses a preprocressor variable that could not be resolved. Recovery: Do one of the following to recover: 1. Have Make Make ignore the error by selecting the Ignore push button. The file will not appear as a dependency in the generated make file. You can then manually update the make file later. 2. Restructure the C/C++ source file to remove the preprocessor variable construct so that the #include can be resolved by the make file creation utility, then try the operation again. ═══ Message Help ═══ Explanation: The make file creation utility encountered an error while reading the specified file. If the file is on a removable medium, you may have deleted or moved it. If it is on a LAN, the connection to the LAN server may have been broken. Recovery: Verify that the specified file is in the expected location and that it is accessible, then retry the operation. If the problem persists, contact your IBM Service Representative. ═══ Message Help ═══ Explanation: The make file creation utility was able to find the file, but could not open it. Another process may have the file open, or the file name may specify a directory. Recovery: Do one of the following to recover: 1. You can have the Make Make ignore the error by selecting the Ignore push button. The indicated file will appear in the generated make file, but it will not be checked for any further include files. 2. Halt the other process that is using the specified file then retry the operation. 3. Correct the source in which this file name appears then retry the operation. ═══ Message Help ═══ Explanation: The specified file may not exist or may be in use by another process. Recovery: Ensure that the file exists and that it is not in use by another process, then try the operation again. ═══ Message Help ═══ Explanation: The specified file may be in use by another process, or there may not be enough disk space to write the new information on disk. Recovery: Ensure that the file is not in use by another process, and that there is enough disk space to save the information by deleting or moving unecessary files. ═══ Message Help ═══ Explanation: The specified project file may be corrupt or invalid. Recovery: Ensure that the specified project file is a valid WorkFrame V2.0 project file. ═══ Message Help ═══ Explanation: The file could not be found, may be in use by another process, or a system error could have occurred. Recovery: Ensure that the file exists in the expected location and that it is not in use by another process, then retry the operation. If this error persists, contact your IBM Service Representative. ═══ Retry ═══ Click on the Retry push button to try the operation again. ═══ Abort ═══ Click on the Abort push button to terminate the current operation. No make files will be generated. ═══ Ignore ═══ Click on the Ignore pushbutton to continue without acknowledging the specified error. The make file will be generated but ignoring the error may cause a related component to be left out of the make file. ═══ Message Help ═══ Explanation: The application was unable to access the project file. This may be caused by one of the following reasons:  The drive was not ready. Make sure there is a diskette in the drive you want to save the file to.  The diskette or disk you wanted to write to may be full. Delete some files or specify another disk to write to.  The diskette or disk may be write-protected. Remove the write protection on the disk to save the file on it.  The specified path may not exist in your system. If you have made a typing error, re-enter the path. Otherwise, create the path on your system or specify another path.  The file permissions may be set to read-only. Change the file permission to allow writes or specify another filename to save the file to. See the OS/2* Return Codes Help for more information on the error. ═══ Message Help ═══ For more information on a message, select it from the list below:  Compiler DLL internal error - insufficient heap  Invalid #include in file - include name =  Indeterminate #include in file - include name =  Cannot open file  Cannot find file  Error reading file ═══ ═══ The listing file includes information from the compiler but is not intended for use as a programming interface.