This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by the Parma Polyhedra Library configure 0.10.2, which was
generated by GNU Autoconf 2.63.  Invocation command line was

  $ ./configure --prefix=/contrib/ppl-0.10.2 --with-libgmp-prefix=/contrib/gmp-4.3.1/ --with-java=/usr/java5/ --enable-cxx

## --------- ##
## Platform. ##
## --------- ##

hostname = be1005en.ucar.edu
uname -m = 00CBF2314C00
uname -r = 3
uname -s = AIX
uname -v = 5

/usr/bin/uname -p = powerpc
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = 5.3.0.0
/bin/universe          = unknown

PATH: /contrib/Modules/3.2.6/bin
PATH: /usr/java5/bin/
PATH: /blhome/ddvento/bin/
PATH: /blhome/ddvento/opt/bin/
PATH: /usr/local/lsf/7.0/aix5-64/etc
PATH: /usr/local/lsf/7.0/aix5-64/bin
PATH: /usr/bin
PATH: /etc
PATH: /usr/sbin
PATH: /usr/ucb
PATH: /usr/bin/X11
PATH: /sbin
PATH: /usr/java5/jre/bin
PATH: /usr/java5/bin
PATH: /bin
PATH: /usr/bin/
PATH: /usr/local/bin/
PATH: /usr/vac/bin/
PATH: /usr/vacpp/bin/
PATH: /contrib/Python-2.5.2/bin/
PATH: /contrib/bin/


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2298: checking build system type
configure:2316: result: powerpc-ibm-aix5.3.0.0
configure:2338: checking host system type
configure:2353: result: powerpc-ibm-aix5.3.0.0
configure:2393: checking for a BSD-compatible install
configure:2461: result: /usr/local/bin//install -c
configure:2472: checking whether build environment is sane
configure:2515: result: yes
configure:2540: checking for a thread-safe mkdir -p
configure:2579: result: /usr/local/bin//mkdir -p
configure:2592: checking for gawk
configure:2622: result: no
configure:2592: checking for mawk
configure:2622: result: no
configure:2592: checking for nawk
configure:2608: found /usr/bin/nawk
configure:2619: result: nawk
configure:2630: checking whether make sets $(MAKE)
configure:2652: result: yes
configure:2822: checking how to create a ustar tar archive
configure:2835: tar --version
tar: illegal option -- -
Usage: tar -{c|r|t|u|x} [ -BdDEFhilmopRsUvw ] [ -Number ] [ -f TarFile ]
	   [ -b Blocks ] [ -S [ Feet ] | [ Feet@Density ] | [ Blocksb ] ]
	   [ -L InputList ] [-X ExcludeFile] [ -N Blocks ] [ -C Directory ] File ...
Usage: tar {c|r|t|u|x} [ bBdDEfFhilLXmNopRsSUvw[0-9] ]
	   [ Blocks ] [ TarFile ] [ InputList ] [ ExcludeFile ] 
	   [ [ Feet ] | [ Feet@Density ] | [ Blocksb ] ] [-C Directory ] File ...
configure:2838: $? = 1
configure:2835: gnutar --version
./configure[2836]: gnutar:  not found
configure:2838: $? = 127
configure:2835: gtar --version
tar (GNU tar) 1.19
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
configure:2838: $? = 0
configure:2878: tardir=conftest.dir && eval gtar --format=ustar -chf - "$tardir" >conftest.tar
configure:2881: $? = 0
configure:2885: gtar -xf - <conftest.tar
configure:2888: $? = 0
configure:2901: result: gnutar
configure:3027: checking for gcc
configure:3054: result: xlc
configure:3286: checking for C compiler version
configure:3294: xlc --version >&5
xlc: 1501-216 (W) command option --version is not recognized - passed to ld



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































configure:3298: $? = 249
configure:3305: xlc -v >&5
exec: export(export,XL_CONFIG=/etc/vac.cfg.53:xlc,NULL) 
exec: less(less,/usr/vacpp/exe/default_msg/vacpp.txt,NULL) 



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































unlink: /ptmp/ddvento/xlcW0pmqlia
unlink: /ptmp/ddvento/xlcW1pmqlib
unlink: /ptmp/ddvento/xlcW2pmqlic
configure:3309: $? = 249
configure:3316: xlc -V >&5
export XL_CONFIG=/etc/vac.cfg.53:xlc 
less /usr/vacpp/exe/default_msg/vacpp.txt 



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































rm /ptmp/ddvento/xlcW0ppyEia
rm /ptmp/ddvento/xlcW1ppyEib
rm /ptmp/ddvento/xlcW2ppyEic
configure:3320: $? = 249
configure:3343: checking for C compiler default output file name
configure:3365: xlc    conftest.c  >&5
configure:3369: $? = 0
configure:3407: result: a.out
configure:3426: checking whether the C compiler works
configure:3436: ./a.out
configure:3440: $? = 0
configure:3459: result: yes
configure:3466: checking whether we are cross compiling
configure:3468: result: no
configure:3471: checking for suffix of executables
configure:3478: xlc -o conftest    conftest.c  >&5
configure:3482: $? = 0
configure:3508: result: 
configure:3514: checking for suffix of object files
configure:3540: xlc -c   conftest.c >&5
configure:3544: $? = 0
configure:3569: result: o
configure:3573: checking whether we are using the GNU C compiler
configure:3602: xlc -c   conftest.c >&5
"conftest.c", line 14.14: 1506-275 (S) Unexpected text me encountered.
"conftest.c", line 14.8: 1506-045 (S) Undeclared identifier choke.
configure:3609: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| #ifndef __GNUC__
|        choke me
| #endif
| 
|   ;
|   return 0;
| }
configure:3626: result: no
configure:3635: checking whether xlc accepts -g
configure:3665: xlc -c -g  conftest.c >&5
configure:3672: $? = 0
configure:3773: result: yes
configure:3790: checking for xlc option to accept ISO C89
configure:3864: xlc  -c -g  conftest.c >&5
configure:3871: $? = 0
configure:3894: result: none needed
configure:3923: checking for style of include used by make
configure:3951: result: GNU
configure:3976: checking dependency style of xlc
configure:4067: result: aix
configure:4269: checking for C++ compiler version
configure:4277: xlC --version >&5
xlC: 1501-216 (W) command option --version is not recognized - passed to ld



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































configure:4281: $? = 249
configure:4288: xlC -v >&5
exec: export(export,XL_CONFIG=/etc/vac.cfg.53:xlC,NULL) 
exec: less(less,/usr/vacpp/exe/default_msg/vacpp.txt,NULL) 



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































unlink: /ptmp/ddvento/xlcW0u-ieaa
unlink: /ptmp/ddvento/xlcW1u-ieab
unlink: /ptmp/ddvento/xlcW2u-ieac
configure:4292: $? = 249
configure:4299: xlC -V >&5
export XL_CONFIG=/etc/vac.cfg.53:xlC 
less /usr/vacpp/exe/default_msg/vacpp.txt 



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































rm /ptmp/ddvento/xlcW0ve7Qia
rm /ptmp/ddvento/xlcW1ve7Qib
rm /ptmp/ddvento/xlcW2ve7Qic
configure:4303: $? = 249
configure:4306: checking whether we are using the GNU C++ compiler
configure:4335: xlC -c   conftest.cpp >&5
"conftest.cpp", line 14.14: 1540-0040 (S) The text "me" is unexpected.  "choke" may be undeclared or ambiguous.
configure:4342: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| #ifndef __GNUC__
|        choke me
| #endif
| 
|   ;
|   return 0;
| }
configure:4359: result: no
configure:4368: checking whether xlC accepts -g
configure:4398: xlC -c -g  conftest.cpp >&5
configure:4405: $? = 0
configure:4506: result: yes
configure:4531: checking dependency style of xlC
configure:4622: result: aix
configure:4702: checking for grep that handles long lines and -e
configure:4762: result: /usr/local/bin//grep
configure:4767: checking for fgrep
configure:4831: result: /usr/local/bin//grep -F
configure:4836: checking for egrep
configure:4900: result: /usr/local/bin//grep -E
configure:4905: checking for a sed that does not truncate output
configure:4971: result: /usr/bin/sed
configure:4981: checking how to run the C++ preprocessor
configure:5017: xlC -E  conftest.cpp
configure:5024: $? = 0
configure:5055: xlC -E  conftest.cpp
"conftest.cpp", line 9.10: 1540-0836 (S) The #include file <ac_nonexistent.h> is not found.
configure:5062: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:5095: result: xlC -E
configure:5124: xlC -E  conftest.cpp
configure:5131: $? = 0
configure:5162: xlC -E  conftest.cpp
"conftest.cpp", line 9.10: 1540-0836 (S) The #include file <ac_nonexistent.h> is not found.
configure:5169: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:5208: checking whether make sets $(MAKE)
configure:5230: result: yes
configure:5253: checking for a BSD-compatible install
configure:5321: result: /usr/local/bin//install -c
configure:5339: checking whether to compile with debug info
configure:5348: result: yes
configure:5372: checking whether to compile for profiling
configure:5387: result: no
configure:5398: checking whether to compile for test coverage
configure:5413: result: no
configure:5424: checking whether to enable checking of run-time assertions
configure:5437: result: no
configure:5449: checking whether to enable even more run-time assertions
configure:5462: result: no
configure:5515: checking whether to enable optimizations
configure:5542: result: standard
configure:5568: checking for which architecture to optimize
configure:5591: result: default
configure:5604: checking whether to select specific floating point arithmetics
configure:5647: result: default
configure:5692: checking whether to use precompiled headers
configure:5706: result: no
configure:5824: checking the type of integral values to use as coefficients
configure:5889: result: GMP mpz
configure:6030: checking for perl
configure:6048: found /usr/bin/perl
configure:6061: result: /usr/bin/perl
configure:6086: checking for an ANSI C-conforming const
configure:6161: xlc -c  -g -O2   conftest.c >&5
"conftest.c", line 23.17: 1506-359 (I) Automatic variable cs contains a const member and is not initialized.  It will be initialized to zero.
configure:6168: $? = 0
configure:6183: result: yes
configure:6193: checking for inline
configure:6219: xlc -c  -g -O2   conftest.c >&5
configure:6226: $? = 0
configure:6244: result: inline
configure:6268: checking how to run the C preprocessor
configure:6308: xlc -E  conftest.c
configure:6315: $? = 0
configure:6346: xlc -E  conftest.c
"conftest.c", line 15.10: 1506-296 (S) #include file <ac_nonexistent.h> not found.
configure:6353: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:6386: result: xlc -E
configure:6415: xlc -E  conftest.c
configure:6422: $? = 0
configure:6453: xlc -E  conftest.c
"conftest.c", line 15.10: 1506-296 (S) #include file <ac_nonexistent.h> not found.
configure:6460: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:6500: checking for ANSI C header files
configure:6530: xlc -c  -g -O2   conftest.c >&5
configure:6537: $? = 0
configure:6636: xlc -o conftest  -g -O2    conftest.c  >&5
configure:6640: $? = 0
configure:6646: ./conftest
configure:6650: $? = 0
configure:6668: result: yes
configure:6692: checking for sys/types.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for sys/stat.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for stdlib.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for string.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for memory.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for strings.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for inttypes.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for stdint.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6692: checking for unistd.h
configure:6713: xlc -c  -g -O2   conftest.c >&5
configure:6720: $? = 0
configure:6737: result: yes
configure:6752: checking whether byte ordering is bigendian
configure:6777: xlc -c  -g -O2   conftest.c >&5
"conftest.c", line 26.16: 1506-166 (S) Definition of function not requires parentheses.
"conftest.c", line 26.20: 1506-046 (S) Syntax error.
configure:6784: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #ifndef __APPLE_CC__
| 	       not a universal capable compiler
| 	     #endif
| 	     typedef int dummy;
| 
configure:6834: xlc -c  -g -O2   conftest.c >&5
configure:6841: $? = 0
configure:6873: xlc -c  -g -O2   conftest.c >&5
configure:6880: $? = 0
configure:7132: result: yes
configure:7158: checking for typeof syntax and keyword spelling
configure:7199: xlc -c  -g -O2   conftest.c >&5
"conftest.c", line 35.51: 1506-276 (S) Syntax error: possible missing ')'?
"conftest.c", line 37.58: 1506-277 (S) Syntax error: possible missing ')' or ','?
"conftest.c", line 34.33: 1506-023 (S) Expecting function or pointer to function.
"conftest.c", line 33.28: 1506-1324 (S) Array size must have integer type.
configure:7206: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
| 	   int value;
| 	   typedef struct {
| 		   char a [1
| 			   + ! ((typeof (value))
| 				((typeof (value)) 0 < (typeof (value)) -1
| 				 ? (typeof (value)) - 1
| 				 : ~ (~ (typeof (value)) 0
| 				      << sizeof (typeof (value)))))]; }
| 	      ac__typeof_type_;
| 	   return
| 	     (! ((void) ((ac__typeof_type_ *) 0), 0));
| 
|   ;
|   return 0;
| }
configure:7199: xlc -c  -g -O2   conftest.c >&5
configure:7206: $? = 0
configure:7223: result: __typeof__
configure:7246: checking size of char
configure:7551: xlc -o conftest  -g -O2    conftest.c  >&5
configure:7555: $? = 0
configure:7561: ./conftest
configure:7565: $? = 0
configure:7591: result: 1
configure:7605: checking size of short
configure:7910: xlc -o conftest  -g -O2    conftest.c  >&5
configure:7914: $? = 0
configure:7920: ./conftest
configure:7924: $? = 0
configure:7950: result: 2
configure:7964: checking size of int
configure:8269: xlc -o conftest  -g -O2    conftest.c  >&5
configure:8273: $? = 0
configure:8279: ./conftest
configure:8283: $? = 0
configure:8309: result: 4
configure:8323: checking size of long
configure:8628: xlc -o conftest  -g -O2    conftest.c  >&5
configure:8632: $? = 0
configure:8638: ./conftest
configure:8642: $? = 0
configure:8668: result: 8
configure:8682: checking size of long long
configure:8987: xlc -o conftest  -g -O2    conftest.c  >&5
configure:8991: $? = 0
configure:8997: ./conftest
configure:9001: $? = 0
configure:9027: result: 8
configure:9041: checking size of size_t
configure:9346: xlc -o conftest  -g -O2    conftest.c  >&5
configure:9350: $? = 0
configure:9356: ./conftest
configure:9360: $? = 0
configure:9386: result: 8
configure:9400: checking size of float
configure:9705: xlc -o conftest  -g -O2    conftest.c  >&5
configure:9709: $? = 0
configure:9715: ./conftest
configure:9719: $? = 0
configure:9745: result: 4
configure:9759: checking size of double
configure:10064: xlc -o conftest  -g -O2    conftest.c  >&5
configure:10068: $? = 0
configure:10074: ./conftest
configure:10078: $? = 0
configure:10104: result: 8
configure:10118: checking size of long double
configure:10423: xlc -o conftest  -g -O2    conftest.c  >&5
configure:10427: $? = 0
configure:10433: ./conftest
configure:10437: $? = 0
configure:10463: result: 8
configure:10480: checking size of int*
configure:10785: xlc -o conftest  -g -O2    conftest.c  >&5
configure:10789: $? = 0
configure:10795: ./conftest
configure:10799: $? = 0
configure:10825: result: 8
configure:10839: checking size of fp
configure:11150: xlc -o conftest  -g -O2    conftest.c  >&5
configure:11154: $? = 0
configure:11160: ./conftest
configure:11164: $? = 0
configure:11190: result: 8
configure:11237: checking fenv.h usability
configure:11254: xlC -c  -g -O2   conftest.cpp >&5
configure:11261: $? = 0
configure:11275: result: yes
configure:11279: checking fenv.h presence
configure:11294: xlC -E  conftest.cpp
configure:11301: $? = 0
configure:11315: result: yes
configure:11348: checking for fenv.h
configure:11357: result: yes
configure:11237: checking ieeefp.h usability
configure:11254: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 73.10: 1540-0836 (S) The #include file <ieeefp.h> is not found.
configure:11261: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <ieeefp.h>
configure:11275: result: no
configure:11279: checking ieeefp.h presence
configure:11294: xlC -E  conftest.cpp
"conftest.cpp", line 40.10: 1540-0836 (S) The #include file <ieeefp.h> is not found.
configure:11301: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| /* end confdefs.h.  */
| #include <ieeefp.h>
configure:11315: result: no
configure:11348: checking for ieeefp.h
configure:11357: result: no
configure:11372: checking if it is possible to control the FPU
configure:11527: xlC -o conftest  -g -O2    conftest.cpp  -lm >&5
configure:11531: $? = 0
configure:11537: ./conftest
configure:11541: $? = 0
configure:11543: result: yes
configure:11594: checking whether the C++ compiler provides proper long doubles
configure:11627: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:11631: $? = 0
configure:11637: ./conftest
configure:11641: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| /* end confdefs.h.  */
| 
| #include <cfloat>
| 
| long double f = 0.0;
| 
| int main() {
|   if ((LDBL_MAX <= DBL_MAX) && (DBL_EPSILON <= LDBL_EPSILON)
|       && (LDBL_MAX_EXP <= DBL_MAX_EXP) && (LDBL_MANT_DIG <= DBL_MANT_DIG))
|     return 1;
|   else
|     return 0;
| }
| 
configure:11652: result: no
configure:11695: checking the binary format of C++ floats
configure:11763: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:11767: $? = 0
configure:11773: ./conftest
configure:11777: $? = 0
configure:11799: result: IEEE754 Single Precision
configure:11812: checking whether C++ provides exact output for floats
configure:11918: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:11922: $? = 0
configure:11928: ./conftest
configure:11932: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| /* end confdefs.h.  */
| 
| #include <limits>
| #ifdef HAVE_STDINT_H
| #ifndef __STDC_LIMIT_MACROS
| #define __STDC_LIMIT_MACROS 1
| #endif
| #include <stdint.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| #include <inttypes.h>
| #endif
| #include <sstream>
| 
| /* Unique (nonzero) code for the IEEE 754 Single Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_SINGLE 1
| 
| /* Unique (nonzero) code for the IEEE 754 Double Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_DOUBLE 2
| 
| /* Unique (nonzero) code for the IEEE 754 Quad Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_QUAD 3
| 
| /* Unique (nonzero) code for the Intel Double-Extended
|    floating point format.  */
| # define PPL_FLOAT_INTEL_DOUBLE_EXTENDED 4
| 
| bool
| check(float value, const char* text) {
|   std::ostringstream ss;
|   ss.precision(10000);
|   ss << value;
|   return ss.str() == text;
| }
| 
| #if SIZEOF_FLOAT == 4
| 
| float
| convert(uint32_t x) {
|   union {
|     float value;
|     uint32_t word;
|   } u;
| 
|   u.word = x;
|   return u.value;
| }
| 
| #if PPL_CXX_FLOAT_BINARY_FORMAT == PPL_FLOAT_IEEE754_SINGLE
| 
| int
| main() {
|   if (check(convert(0xaaacccaaU),
|             "-3.069535185924732179074680971098132431507110595703125e-13")
|       && check(convert(0xcccaaaccU),
|                "-106255968")
|       && check(convert(0x00000001U),
|                "1.40129846432481707092372958328991613128026194187651577175706828388979108268586060148663818836212158203125e-45")
|       && check(convert(0x80000001U),
|                "-1.40129846432481707092372958328991613128026194187651577175706828388979108268586060148663818836212158203125e-45"))
|     return 0;
|   else
|     return 1;
| }
| 
| #else // PPL_CXX_FLOAT_BINARY_FORMAT != FLOAT_IEEE754_SINGLE
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // PPL_CXX_FLOAT_BINARY_FORMAT != FLOAT_IEEE754_SINGLE
| 
| #else // SIZEOF_FLOAT != 4
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // SIZEOF_FLOAT != 4
| 
configure:11943: result: no
configure:12011: checking the binary format of C++ doubles
configure:12089: xlC -o conftest  -g -O2    conftest.cpp  >&5
"conftest.cpp", line 87.14: 1540-0821 (W) The floating point literal "4.[payload removed: 445 characters]..." is out of range.
"conftest.cpp", line 89.15: 1540-0821 (W) The floating point literal "4.[payload removed: 445 characters]..." is out of range.
configure:12093: $? = 0
configure:12099: ./conftest
configure:12103: $? = 0
configure:12125: result: IEEE754 Double Precision
configure:12139: checking whether C++ provides exact output for doubles
configure:12254: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:12258: $? = 0
configure:12264: ./conftest
configure:12268: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| /* end confdefs.h.  */
| 
| #include <limits>
| #ifdef HAVE_STDINT_H
| #ifndef __STDC_LIMIT_MACROS
| #define __STDC_LIMIT_MACROS 1
| #endif
| #include <stdint.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| #include <inttypes.h>
| #endif
| #include <sstream>
| 
| /* Unique (nonzero) code for the IEEE 754 Single Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_SINGLE 1
| 
| /* Unique (nonzero) code for the IEEE 754 Double Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_DOUBLE 2
| 
| /* Unique (nonzero) code for the IEEE 754 Quad Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_QUAD 3
| 
| /* Unique (nonzero) code for the Intel Double-Extended
|    floating point format.  */
| # define PPL_FLOAT_INTEL_DOUBLE_EXTENDED 4
| 
| bool
| check(double value, const char* text) {
|   std::ostringstream ss;
|   ss.precision(10000);
|   ss << value;
|   return ss.str() == text;
| }
| 
| #if SIZEOF_DOUBLE == 8
| 
| double
| convert(uint32_t msp, uint32_t lsp) {
|   union {
|     double value;
|     struct {
| #ifdef WORDS_BIGENDIAN
|       uint32_t msp;
|       uint32_t lsp;
| #else
|       uint32_t lsp;
|       uint32_t msp;
| #endif
|     } parts;
|   } u;
| 
|   u.parts.msp = msp;
|   u.parts.lsp = lsp;
|   return u.value;
| }
| 
| #if PPL_CXX_DOUBLE_BINARY_FORMAT == PPL_FLOAT_IEEE754_DOUBLE
| 
| int
| main() {
|   if (check(convert(0xaaacccaaUL, 0xacccaaacUL),
|             "-4.[payload removed: 289 characters]-103")
|       && check(convert(0xcccaaaccUL, 0xcaaacccaUL),
|                "-85705035845709846787631445265530356117787053916987832397725696")
|       && check(convert(0x00000000UL, 0x00000001UL),
|                "4.[payload removed: 751 characters]-324")
|       && check(convert(0x80000000UL, 0x00000001UL),
|                "-4.[payload removed: 751 characters]-324"))
|     return 0;
|   else
|     return 1;
| }
| 
| #else // PPL_CXX_DOUBLE_BINARY_FORMAT != PPL_FLOAT_IEEE754_DOUBLE
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // PPL_CXX_DOUBLE_BINARY_FORMAT != PPL_FLOAT_IEEE754_DOUBLE
| 
| #else // SIZEOF_DOUBLE != 8
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // SIZEOF_DOUBLE != 8
| 
configure:12279: result: no
configure:12347: checking the binary format of C++ long doubles
configure:12425: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:12429: $? = 0
configure:12435: ./conftest
configure:12439: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| /* end confdefs.h.  */
| 
| #include <limits>
| #ifdef HAVE_STDINT_H
| #ifndef __STDC_LIMIT_MACROS
| #define __STDC_LIMIT_MACROS 1
| #endif
| #include <stdint.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| #include <inttypes.h>
| #endif
| 
| #if SIZEOF_LONG_DOUBLE == 12
| 
| long double
| convert(uint32_t msp, uint64_t lsp) {
|   union {
|     long double value;
|     struct {
| #ifdef WORDS_BIGENDIAN
|       uint32_t msp;
|       uint64_t lsp;
| #else
|       uint64_t lsp;
|       uint32_t msp;
| #endif
|     } parts;
|   } u;
| 
|   u.parts.msp = msp;
|   u.parts.lsp = lsp;
|   return u.value;
| }
| 
| int
| main() {
|   if (std::numeric_limits<long double>::is_iec559
|       && (convert(0xaaacccaaUL, 0xacccaaacccaaacccULL)
|           == -[payload removed: 977 characters].0L
|           && convert(0xcccaaaccUL, 0xcaaacccaaacccaaaULL)
|           == -3.[payload removed: 3856 characters]-1634L
|           && convert(0x00000000UL, 0x0000000000000001ULL)
|           == 3.[payload removed: 10000 characters]-4951L
|           && convert(0x80000000UL, 0x0000000000000001ULL)
|           == 3.[payload removed: 10000 characters]-4951L))
|     return 0;
|   else
|     return 1;
| }
| 
| #else // SIZEOF_LONG_DOUBLE != 12
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // SIZEOF_LONG_DOUBLE != 12
| 
configure:12551: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:12555: $? = 0
configure:12561: ./conftest
configure:12565: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| /* end confdefs.h.  */
| 
| #include <limits>
| #ifdef HAVE_STDINT_H
| #ifndef __STDC_LIMIT_MACROS
| #define __STDC_LIMIT_MACROS 1
| #endif
| #include <stdint.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| #include <inttypes.h>
| #endif
| 
| #if SIZEOF_LONG_DOUBLE == 16
| 
| #if defined(__sparc__) && defined(__arch64__)     && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4))
| 
| // Work around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37661
| int
| main() {
|   return 1;
| }
| 
| #else // !defined(__sparc__) || !defined(__arch64__) ...
| 
| long double
| convert(uint64_t msp, uint64_t lsp) {
|   union {
|     long double value;
|     struct {
| #ifdef WORDS_BIGENDIAN
|       uint64_t msp;
|       uint64_t lsp;
| #else
|       uint64_t lsp;
|       uint64_t msp;
| #endif
|     } parts;
|   } u;
| 
|   u.parts.msp = msp;
|   u.parts.lsp = lsp;
|   return u.value;
| }
| 
| int
| main() {
|   if (std::numeric_limits<long double>::is_iec559
|       && (convert(0xaaacccaaacccaaacULL, 0xccaaacccaaacccaaULL)
|           == -8.[payload removed: 3927 characters]-1644L
|           && convert(0xcccaaacccaaacccaULL, 0xaacccaaacccaaaccULL)
|           == -[payload removed: 987 characters].0L
|           && convert(0x0000000000000000ULL, 0x0000000000000001ULL)
|           == 6.[payload removed: 10000 characters]-4966L
|           && convert(0x8000000000000000ULL, 0x0000000000000001ULL)
|           == -6.[payload removed: 10000 characters]-4966L))
|     return 0;
|   else
|     return 1;
| }
| 
| #endif // !defined(__sparc__) || !defined(__arch64__) ...
| 
| #else // SIZEOF_LONG_DOUBLE != 16
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // SIZEOF_LONG_DOUBLE != 16
| 
configure:12665: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:12669: $? = 0
configure:12675: ./conftest
configure:12679: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| /* end confdefs.h.  */
| 
| #include <limits>
| #ifdef HAVE_STDINT_H
| #ifndef __STDC_LIMIT_MACROS
| #define __STDC_LIMIT_MACROS 1
| #endif
| #include <stdint.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| #include <inttypes.h>
| #endif
| 
| #if SIZEOF_LONG_DOUBLE == 16
| 
| long double
| convert(uint64_t msp, uint64_t lsp) {
|   union {
|     long double value;
|     struct {
| #ifdef WORDS_BIGENDIAN
|       uint64_t msp;
|       uint64_t lsp;
| #else
|       uint64_t lsp;
|       uint64_t msp;
| #endif
|     } parts;
|   } u;
| 
|   u.parts.msp = msp;
|   u.parts.lsp = lsp;
|   return u.value;
| }
| 
| int
| main() {
|   if (std::numeric_limits<long double>::is_iec559
|       && (convert(0xaaacccaaacccaaacULL, 0xccaaacccaaacccaaULL)
|           == -7.[payload removed: 3878 characters]-1644L
|           && convert(0xcccaaacccaaacccaULL, 0xaacccaaacccaaaccULL)
|           == -[payload removed: 986 characters].0L
|           && convert(0x0000000000000000ULL, 0x0000000000000001ULL)
|           == 3.[payload removed: 10000 characters]-4951L
|           && convert(0x8000000000000000ULL, 0x0000000000000001ULL)
|           == 3.[payload removed: 10000 characters]-4951L))
|     return 0;
|   else
|     return 1;
| }
| 
| #else // SIZEOF_LONG_DOUBLE != 16
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // SIZEOF_LONG_DOUBLE != 16
| 
configure:12779: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:12783: $? = 0
configure:12789: ./conftest
configure:12793: $? = 0
configure:12816: result: IEEE754 Double Precision
configure:12830: checking whether C++ provides exact output for long doubles
configure:13058: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:13062: $? = 0
configure:13068: ./conftest
configure:13072: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| /* end confdefs.h.  */
| 
| #include <limits>
| #ifdef HAVE_STDINT_H
| #ifndef __STDC_LIMIT_MACROS
| #define __STDC_LIMIT_MACROS 1
| #endif
| #include <stdint.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| #include <inttypes.h>
| #endif
| #include <sstream>
| 
| /* Unique (nonzero) code for the IEEE 754 Single Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_SINGLE 1
| 
| /* Unique (nonzero) code for the IEEE 754 Double Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_DOUBLE 2
| 
| /* Unique (nonzero) code for the IEEE 754 Quad Precision
|    floating point format.  */
| # define PPL_FLOAT_IEEE754_QUAD 3
| 
| /* Unique (nonzero) code for the Intel Double-Extended
|    floating point format.  */
| # define PPL_FLOAT_INTEL_DOUBLE_EXTENDED 4
| 
| bool
| check(long double value, const char* text) {
|   std::ostringstream ss;
|   ss.precision(10000);
|   ss << value;
|   return ss.str() == text;
| }
| 
| #if SIZEOF_LONG_DOUBLE == 12
| 
| long double
| convert(uint32_t msp, uint64_t lsp) {
|   union {
|     long double value;
|     struct {
| #ifdef WORDS_BIGENDIAN
|       uint32_t msp;
|       uint64_t lsp;
| #else
|       uint64_t lsp;
|       uint32_t msp;
| #endif
|     } parts;
|   } u;
| 
|   u.parts.msp = msp;
|   u.parts.lsp = lsp;
|   return u.value;
| }
| 
| #if PPL_CXX_LONG_DOUBLE_BINARY_FORMAT == PPL_FLOAT_INTEL_DOUBLE_EXTENDED
| 
| int
| main() {
|   if (check(convert(0xaaacccaaUL, 0xacccaaacccaaacccULL),
|             "-[payload removed: 977 characters]")
|       && check(convert(0xcccaaaccUL, 0xcaaacccaaacccaaaULL),
|                "-3.[payload removed: 3856 characters]-1634")
|       && check(convert(0x00000000UL, 0x0000000000000001ULL),
|                "3.[payload removed: 10000 characters]-4951")
|       && check(convert(0x80000000UL, 0x0000000000000001ULL),
|                "3.[payload removed: 10000 characters]-4951"))
|     return 0;
|   else
|     return 1;
| }
| 
| #else // PPL_CXX_LONG_DOUBLE_BINARY_FORMAT != FLOAT_INTEL_DOUBLE_EXTENDED
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // PPL_CXX_LONG_DOUBLE_BINARY_FORMAT != FLOAT_INTEL_DOUBLE_EXTENDED
| 
| #elif SIZEOF_LONG_DOUBLE == 16
| 
| long double
| convert(uint64_t msp, uint64_t lsp) {
|   union {
|     long double value;
|     struct {
| #ifdef WORDS_BIGENDIAN
|       uint64_t msp;
|       uint64_t lsp;
| #else
|       uint64_t lsp;
|       uint64_t msp;
| #endif
|     } parts;
|   } u;
| 
|   u.parts.msp = msp;
|   u.parts.lsp = lsp;
|   return u.value;
| }
| 
| #if PPL_CXX_LONG_DOUBLE_BINARY_FORMAT == PPL_FLOAT_IEEE754_QUAD
| 
| int
| main() {
|   if (check(convert(0xaaacccaaacccaaacULL, 0xccaaacccaaacccaaULL),
|             "-8.[payload removed: 3927 characters]-1644")
|       && check(convert(0xcccaaacccaaacccaULL, 0xaacccaaacccaaaccULL),
|                "-[payload removed: 987 characters]")
|       && check(convert(0x0000000000000000ULL, 0x0000000000000001ULL),
|                "6.[payload removed: 10000 characters]-4966")
|       && check(convert(0x8000000000000000ULL, 0x0000000000000001ULL),
|                "-6.[payload removed: 10000 characters]-4966"))
|     return 0;
|   else
|     return 1;
| }
| 
| #elif PPL_CXX_LONG_DOUBLE_BINARY_FORMAT == PPL_FLOAT_INTEL_DOUBLE_EXTENDED
| 
| int
| main() {
|   if (check(convert(0xaaacccaaacccaaacULL, 0xccaaacccaaacccaaULL),
|             "-7.[payload removed: 3878 characters]-1644")
|       && check(convert(0xcccaaacccaaacccaULL, 0xaacccaaacccaaaccULL),
|                "-[payload removed: 986 characters]")
|       && check(convert(0x0000000000000000ULL, 0x0000000000000001ULL),
|                "3.[payload removed: 10000 characters]-4951")
|       && check(convert(0x8000000000000000ULL, 0x0000000000000001ULL),
|                "3.[payload removed: 10000 characters]-4951"))
|     return 0;
|   else
|     return 1;
| }
| 
| #else // PPL_CXX_LONG_DOUBLE_BINARY_FORMAT != FLOAT_INTEL_DOUBLE_EXTENDED
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // PPL_CXX_LONG_DOUBLE_BINARY_FORMAT != FLOAT_INTEL_DOUBLE_EXTENDED
| 
| #elif SIZEOF_LONG_DOUBLE == 8
| 
| double
| convert(uint32_t msp, uint32_t lsp) {
|   union {
|     long double value;
|     struct {
| #ifdef WORDS_BIGENDIAN
|       uint32_t msp;
|       uint32_t lsp;
| #else
|       uint32_t lsp;
|       uint32_t msp;
| #endif
|     } parts;
|   } u;
| 
|   u.parts.msp = msp;
|   u.parts.lsp = lsp;
|   return u.value;
| }
| 
| #if PPL_CXX_LONG_DOUBLE_BINARY_FORMAT == PPL_FLOAT_IEEE754_DOUBLE
| 
| int
| main() {
|   if (check(convert(0xaaacccaaUL, 0xacccaaacUL),
|             "-4.[payload removed: 289 characters]-103")
|       && check(convert(0xcccaaaccUL, 0xcaaacccaUL),
|                "-85705035845709846787631445265530356117787053916987832397725696")
|       && check(convert(0x00000000UL, 0x00000001UL),
|                "4.[payload removed: 751 characters]-324")
|       && check(convert(0x80000000UL, 0x00000001UL),
|                "-4.[payload removed: 751 characters]-324"))
|     return 0;
|   else
|     return 1;
| }
| 
| #else // PPL_CXX_LONG_DOUBLE_BINARY_FORMAT != FLOAT_IEEE754_DOUBLE
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // PPL_CXX_LONG_DOUBLE_BINARY_FORMAT != FLOAT_IEEE754_DOUBLE
| 
| #else // SIZEOF_LONG_DOUBLE != 8
| 
| int
| main() {
|   return 1;
| }
| 
| #endif // SIZEOF_LONG_DOUBLE != 8
| 
configure:13083: result: no
configure:13162: checking whether the C++ compiler supports flexible arrays
configure:13307: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:13311: $? = 0
configure:13317: ./conftest
configure:13321: $? = 0
configure:13323: result: yes
configure:13375: checking whether the IEEE inexact flag is supported in C++
configure:13477: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:13481: $? = 0
configure:13487: ./conftest
configure:13491: $? = 0
configure:13493: result: yes
configure:13546: checking if the compiler has the remainder bug
configure:13585: xlC -o conftest  -g -O2    conftest.cpp  >&5
configure:13589: $? = 0
configure:13595: ./conftest
configure:13599: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| /* end confdefs.h.  */
| 
| #include <climits>
| 
| int minus_one(int n) {
|   return (n+1)*(n-1)-n*n;
| }
| 
| int p(int x, int y) {
|   int z = x % y;
|   return z;
| }
| 
| int main(int argc, char** argv) {
|   if (p(INT_MIN, minus_one(argc)) != 0)
|     return 1;
|   else
|     return 0;
| }
| 
configure:13610: result: yes
configure:13653: checking whether the C++ compiler supports __attribute__ ((weak))
configure:13676: xlC -c  -g -O2   conftest.cpp >&5
configure:13683: $? = 0
configure:13688: result: yes
configure:13739: checking for fenv.h
configure:13746: result: yes
configure:13739: checking for ieeefp.h
configure:13746: result: no
configure:13750: checking getopt.h usability
configure:13767: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 89.10: 1540-0836 (S) The #include file <getopt.h> is not found.
configure:13774: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <getopt.h>
configure:13788: result: no
configure:13792: checking getopt.h presence
configure:13807: xlC -E  conftest.cpp
"conftest.cpp", line 56.10: 1540-0836 (S) The #include file <getopt.h> is not found.
configure:13814: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| /* end confdefs.h.  */
| #include <getopt.h>
configure:13828: result: no
configure:13861: checking for getopt.h
configure:13870: result: no
configure:13750: checking signal.h usability
configure:13767: xlC -c  -g -O2   conftest.cpp >&5
configure:13774: $? = 0
configure:13788: result: yes
configure:13792: checking signal.h presence
configure:13807: xlC -E  conftest.cpp
configure:13814: $? = 0
configure:13828: result: yes
configure:13861: checking for signal.h
configure:13870: result: yes
configure:13739: checking for string.h
configure:13746: result: yes
configure:13739: checking for strings.h
configure:13746: result: yes
configure:13750: checking sys/resource.h usability
configure:13767: xlC -c  -g -O2   conftest.cpp >&5
configure:13774: $? = 0
configure:13788: result: yes
configure:13792: checking sys/resource.h presence
configure:13807: xlC -E  conftest.cpp
configure:13814: $? = 0
configure:13828: result: yes
configure:13861: checking for sys/resource.h
configure:13870: result: yes
configure:13750: checking sys/time.h usability
configure:13767: xlC -c  -g -O2   conftest.cpp >&5
configure:13774: $? = 0
configure:13788: result: yes
configure:13792: checking sys/time.h presence
configure:13807: xlC -E  conftest.cpp
configure:13814: $? = 0
configure:13828: result: yes
configure:13861: checking for sys/time.h
configure:13870: result: yes
configure:13739: checking for sys/types.h
configure:13746: result: yes
configure:13739: checking for unistd.h
configure:13746: result: yes
configure:13887: checking whether ffs is declared
configure:13923: xlC -c  -g -O2   conftest.cpp >&5
configure:13930: $? = 0
configure:13945: result: yes
configure:13963: checking whether getenv is declared
configure:13993: xlC -c  -g -O2   conftest.cpp >&5
configure:14000: $? = 0
configure:14015: result: yes
configure:14031: checking whether strtof is declared
configure:14061: xlC -c  -g -O2   conftest.cpp >&5
configure:14068: $? = 0
configure:14083: result: yes
configure:14099: checking whether strtod is declared
configure:14129: xlC -c  -g -O2   conftest.cpp >&5
configure:14136: $? = 0
configure:14151: result: yes
configure:14167: checking whether strtold is declared
configure:14197: xlC -c  -g -O2   conftest.cpp >&5
configure:14204: $? = 0
configure:14219: result: yes
configure:14235: checking whether strtoll is declared
configure:14265: xlC -c  -g -O2   conftest.cpp >&5
configure:14272: $? = 0
configure:14287: result: yes
configure:14303: checking whether strtoull is declared
configure:14333: xlC -c  -g -O2   conftest.cpp >&5
configure:14340: $? = 0
configure:14355: result: yes
configure:14373: checking whether fma is declared
configure:14403: xlC -c  -g -O2   conftest.cpp >&5
configure:14410: $? = 0
configure:14425: result: yes
configure:14441: checking whether fmaf is declared
configure:14471: xlC -c  -g -O2   conftest.cpp >&5
configure:14478: $? = 0
configure:14493: result: yes
configure:14509: checking whether fmal is declared
configure:14539: xlC -c  -g -O2   conftest.cpp >&5
configure:14546: $? = 0
configure:14561: result: yes
configure:14577: checking whether rintf is declared
configure:14607: xlC -c  -g -O2   conftest.cpp >&5
configure:14614: $? = 0
configure:14629: result: yes
configure:14645: checking whether rintl is declared
configure:14675: xlC -c  -g -O2   conftest.cpp >&5
configure:14682: $? = 0
configure:14697: result: yes
configure:14717: checking for int_fast16_t
configure:14745: xlC -c  -g -O2   conftest.cpp >&5
configure:14752: $? = 0
configure:14779: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 111.27: 1540-0063 (S) The text ")" is unexpected.
configure:14786: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main ()
| {
| if (sizeof ((int_fast16_t)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:14809: result: yes
configure:14819: checking for int_fast32_t
configure:14847: xlC -c  -g -O2   conftest.cpp >&5
configure:14854: $? = 0
configure:14881: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 112.27: 1540-0063 (S) The text ")" is unexpected.
configure:14888: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main ()
| {
| if (sizeof ((int_fast32_t)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:14911: result: yes
configure:14921: checking for int_fast64_t
configure:14949: xlC -c  -g -O2   conftest.cpp >&5
configure:14956: $? = 0
configure:14983: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 113.27: 1540-0063 (S) The text ")" is unexpected.
configure:14990: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main ()
| {
| if (sizeof ((int_fast64_t)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:15013: result: yes
configure:15023: checking for uint_fast16_t
configure:15051: xlC -c  -g -O2   conftest.cpp >&5
configure:15058: $? = 0
configure:15085: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 114.28: 1540-0063 (S) The text ")" is unexpected.
configure:15092: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main ()
| {
| if (sizeof ((uint_fast16_t)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:15115: result: yes
configure:15125: checking for uint_fast32_t
configure:15153: xlC -c  -g -O2   conftest.cpp >&5
configure:15160: $? = 0
configure:15187: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 115.28: 1540-0063 (S) The text ")" is unexpected.
configure:15194: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main ()
| {
| if (sizeof ((uint_fast32_t)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:15217: result: yes
configure:15227: checking for uint_fast64_t
configure:15255: xlC -c  -g -O2   conftest.cpp >&5
configure:15262: $? = 0
configure:15289: xlC -c  -g -O2   conftest.cpp >&5
"conftest.cpp", line 116.28: 1540-0063 (S) The text ")" is unexpected.
configure:15296: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main ()
| {
| if (sizeof ((uint_fast64_t)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:15319: result: yes
configure:15409: checking for non-GNU ld
configure:15440: result: /usr/bin/ld
configure:15449: checking if the linker (/usr/bin/ld) is GNU ld
configure:15462: result: no
configure:15469: checking for shared library run path origin
configure:15482: result: done
configure:15513: checking how to link with libgmp
configure:15902: result: /contrib/gmp-4.3.1//lib/libgmp.a
configure:15942: checking how to link with libgmpxx
configure:16331: result: /contrib/gmp-4.3.1//lib/libgmpxx.a /contrib/gmp-4.3.1//lib/libgmp.a
configure:16375: checking for the GMP library version 4.1.3 or above
configure:16495: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.cpp  /contrib/gmp-4.3.1//lib/libgmpxx.a /contrib/gmp-4.3.1//lib/libgmp.a >&5
configure:16499: $? = 0
configure:16505: ./conftest
configure:16509: $? = 0
configure:16511: result: yes
configure:16539: checking size of mp_limb_t
configure:16850: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.cpp  /contrib/gmp-4.3.1//lib/libgmpxx.a /contrib/gmp-4.3.1//lib/libgmp.a >&5
configure:16854: $? = 0
configure:16860: ./conftest
configure:16864: $? = 0
configure:16890: result: 8
configure:16901: checking whether GMP has been compiled with support for exceptions
configure:16951: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.cpp  /contrib/gmp-4.3.1//lib/libgmpxx.a /contrib/gmp-4.3.1//lib/libgmp.a >&5
configure:16955: $? = 0
configure:16961: ./conftest
configure:16965: $? = 0
configure:16967: result: yes
configure:17041: checking for __mpz_struct._mp_alloc
configure:17070: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:17077: $? = 0
configure:17136: result: yes
configure:17148: checking for __mpz_struct._mp_size
configure:17177: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:17184: $? = 0
configure:17243: result: yes
configure:17255: checking for __mpz_struct._mp_d
configure:17284: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:17291: $? = 0
configure:17350: result: yes
configure:17387: checking for setitimer
configure:17443: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.cpp  >&5
configure:17450: $? = 0
configure:17472: result: yes
configure:17488: checking whether to build the Parma Watchdog Library
configure:17520: result: yes
configure:17546: checking whether to build the ppl_lcdd program
configure:17555: result: yes
configure:17579: checking whether to build the ppl_lpsol program
configure:17588: result: yes
configure:17620: checking which interfaces are enabled
configure:17682: result: cxx c ocaml java
configure:17808: checking for javac
configure:17826: found /usr/java5//bin/javac
configure:17838: result: /usr/java5//bin/javac
configure:17854: checking whether /usr/java5//bin/javac supports enums
configure:17880: /usr/java5//bin/javac  Test.java
configure:17883: $? = 0
configure:17895: result: yes
configure:17950: checking for java
configure:17968: found /usr/java5//bin/java
configure:17980: result: /usr/java5//bin/java
configure:17998: checking for uudecode
configure:18014: found /usr/bin/uudecode
configure:18025: result: yes
configure:18034: checking if uudecode can decode base 64 file
configure:18061: result: yes
configure:18212: checking if /usr/java5//bin/java works
configure:18249: /usr/java5//bin/java  Test
configure:18252: $? = 0
configure:18265: result: yes
configure:18321: checking for jar
configure:18339: found /usr/java5//bin/jar
configure:18351: result: /usr/java5//bin/jar
configure:18416: checking for javah
configure:18434: found /usr/java5//bin/javah
configure:18446: result: /usr/java5//bin/javah
configure:18469: xlC -E -I/contrib/gmp-4.3.1//include conftest.cpp
"conftest.cpp", line 1.10: 1540-0836 (S) The #include file <jni.h> is not found.
configure:18476: $? = 1
configure: failed program was:
| #include <jni.h>
configure:18501: xlC -E -I/contrib/gmp-4.3.1//include -I/usr/java5//include -I/usr/java5//include/aix conftest.cpp
configure:18508: $? = 0
configure:18538: checking whether jlong can contain data pointers
configure:18568: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include -I/usr/java5//include -I/usr/java5//include/aix  conftest.cpp  >&5
configure:18572: $? = 0
configure:18578: ./conftest
configure:18582: $? = 0
configure:18585: result: yes
configure:18648: checking for ocamlc
configure:18678: result: no
configure:18705: checking for ocamlopt
configure:18735: result: no
configure:20219: checking for GNU M4 that supports accurate traces
configure:20261: result: /usr/local/bin//m4
configure:20264: checking how m4 supports trace files
configure:20274: result: --debugfile
configure:20359: checking which instantiations are enabled
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20425: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -I. conftest.cpp >&5
configure:20432: $? = 0
configure:20480: result: Polyhedron@Grid@Rational_Box@BD_Shape<mpz_class>@BD_Shape<mpq_class>@Octagonal_Shape<mpz_class>@Octagonal_Shape<mpq_class>@Constraints_Product<C_Polyhedron,Grid>@Pointset_Powerset<C_Polyhedron>@Pointset_Powerset<NNC_Polyhedron>
configure:20486: checking whether tests should be run under Valgrind
configure:20544: result: no
configure:20564: checking whether `make check' does a thorough or quick check
configure:20577: result: quick
configure:20621: checking for a sed that does not truncate output
configure:20687: result: /usr/bin/sed
configure:20768: checking for non-GNU ld
configure:20802: result: /usr/bin/ld
configure:20811: checking if the linker (/usr/bin/ld) is GNU ld
configure:20826: result: no
configure:20838: checking for BSD- or MS-compatible name lister (nm)
configure:20887: result: /usr/bin/nm -B
configure:21005: checking the name lister (/usr/bin/nm -B) interface
configure:21012: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:21015: /usr/bin/nm -B "conftest.o"
configure:21018: output
         0 d some_variable
         8 D some_variable
configure:21025: result: BSD nm
configure:21028: checking whether ln -s works
configure:21032: result: yes
configure:21040: checking the maximum length of command line arguments
configure:21160: result: 307200
configure:21177: checking whether the shell understands some XSI constructs
configure:21187: result: yes
configure:21191: checking whether the shell understands "+="
configure:21197: result: no
configure:21232: checking for /usr/bin/ld option to reload object files
configure:21239: result: -r
configure:21308: checking for objdump
configure:21338: result: no
configure:21367: checking how to recognize dependent libraries
configure:21563: result: pass_all
configure:21623: checking for ar
configure:21639: found /usr/bin/ar
configure:21650: result: ar
configure:21728: checking for strip
configure:21744: found /usr/bin/strip
configure:21755: result: strip
configure:21827: checking for ranlib
configure:21843: found /usr/bin/ranlib
configure:21854: result: ranlib
configure:21944: checking command to parse /usr/bin/nm -B output from xlc object
configure:22062: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:22065: $? = 0
configure:22069: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[	 ]\([BCDT][BCDT]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' \> conftest.nm
configure:22072: $? = 0
configure:22126: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.cpp conftstm.o >&5
configure:22129: $? = 0
configure:22167: result: ok
configure:23032: checking for dlfcn.h
configure:23053: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:23060: $? = 0
configure:23077: result: yes
configure:23204: checking for C++ compiler version
configure:23212: xlC --version >&5
xlC: 1501-216 (W) command option --version is not recognized - passed to ld



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































configure:23216: $? = 249
configure:23223: xlC -v >&5
exec: export(export,XL_CONFIG=/etc/vac.cfg.53:xlC,NULL) 
exec: less(less,/usr/vacpp/exe/default_msg/vacpp.txt,NULL) 



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































unlink: /ptmp/ddvento/xlcW0pXIsqa
unlink: /ptmp/ddvento/xlcW1pXIsqb
unlink: /ptmp/ddvento/xlcW2p-Isqc
configure:23227: $? = 249
configure:23234: xlC -V >&5
export XL_CONFIG=/etc/vac.cfg.53:xlC 
less /usr/vacpp/exe/default_msg/vacpp.txt 



  xlc(1)                     IBM (2007)                      xlc(1)



  NAME
         xlc, xlc++, xlC, cc, c89, c99, xlCcore, xlc++core and
         related commands - invoke the IBM XL C/C++ compiler.


  SYNTAX
         <invocation-command> [ <option> | <inputfile> ] ...


  DESCRIPTION
         The invocation commands compile C and C++ source files.
         The commands and their recommended uses are described
         below.

         Invocations                   Usage (supported standards)
         _________________________________________________________

         xlc, xlc_r, xlc_r4,           Compile C source files.
         xlc_r7, xlc128, xlc128_r,     (ANSI C89, ISO C99,
         xlc128_r4, xlc128_r7          IBM language extensions)

         xlc++, xlc++_r, xlc++_r4,     Compile C++ source files.
         xlc++_r7, xlc++128,
         xlc++128_r, xlc++128_r4,
         xlc++128_r7, xlC, xlC_r,
         xlC_r4, xlC_r7, xlC128,
         xlC128_r, xlC128_r4,
         xlC128_r7

         cc, cc_r, cc_r4, cc_r7,       Compile legacy code that
         cc128, cc128_r, cc128_r4,     does not conform to Standard
         cc128_r7                      C. (pre-ANSI C)

         c89, c89_r, c89_r4,           Compile C source files with
         c89_r7, c89_128, c89_128_r,   strict conformance to the
         c89_128_r4, c89_128_r7        C89 standard. (ANSI C89)

         c99, c99_r, c99_r4,           Compile C source files with
         c99_r7, c99_128, c99_128_r,   strict conformance to the
         c99_128_r4, c99_128_r7        C99 standard. (ISO 99)

         xlc++core, xlc++core_r,       Compile C++ source files
         xlc++core_r7, xlc++core128,   but the compiler will
         xlc++core128_r,               link only to the core of
         xlc++core128_r7, xlCcore,     the runtime library.
         xlCcore_r, xlCcore_r7,
         xlC128core, xlC128core_r,
         xlC128core_r7

         gxlc                          Accepts GNU C options, maps
                                       them to their equivalent XL
                                       C option, then invokes xlc.

         gxlc++, gxlC                  Accepts GNU C/C++ options, maps
                                       them to their equivalent XL
                                       C++ option,then invokes xlc++.

         The main difference between these commands is that they use different
         default options (which are set in the configuration file
         /etc/vac.cfg.XX, where XX represents the AIX version).
         See the Compiler Reference for more information on these invocation
         commands.

         All invocations with a suffix of _r allow for thread-safe
         compilation. Use these commands to create threaded
         applications or to link programs that use multi-threading.

         These commands also process assembler source files and
         object files. The compiler calls the link editor to
         produce a single executable or shared library, unless you
         specify the compiler options that prevent object files
         from being linked.

         The input file may have any of the following suffixes:

          .C, .cpp, .cxx,    C++ source file
          .cc, .cp, .c++

          .c                 C source file

          .i                 Preprocessed C or C++ source file

          .a                 Archive file

          .o                 Object file for ld command

          .s                 Assembler source file

          .S                 Assembler source file that
                             needs preprocessing

          .so                Shared object file


  OPTIONS
         Compiler options are categorized by their functions and
         may be used to set the compiler behavior. Options can be
         flag options or keyword options.

         Keyword options are specified in one of the following
         ways:
         -q<option>
         -q<option>=<suboption>
         -q<option>=<suboption>:<suboption>

         Keyword options with no suboptions represent switches that
         may be either on or off. -qx turns the switch on, and
         -qnox turns the switch off. For example, -qsource tells
         the compiler to produce a source listing and -qnosource
         tells the compiler not to produce a source listing.

  Output control options
         -c     Instructs the compiler to pass source files to the
                compiler only. The compiled source files are not
                sent to the linker. This option produces an object
                file, file_name.o, for each valid source file.

         -C | -C!
                Preserves or removes comments in preprocessed
                output.
                When -C is used with the -E option, comments are
                written to standard output; with the -P option,
                comments are written to an output file.
                When -C! is in effect, comments are removed.

         -E     Instructs the compiler to preprocess the source
                files named in the compiler invocation and creates
                an output preprocessed source file.

         -G     Tells the linkage editor to create a shared object
                enabled for runtime linking.

         -M     Creates an output file that contains information to
                be included in a "make" description file. This is
                equivalent to specifying -qmakedep without a
                suboption.

         -qmakedep[=gcc]
                Creates an output file that contains targets
                suitable for inclusion in a description file for
                the make command that describes the dependencies of
                the main source file in the compilation.
                Specifying 'gcc' changes the format of the
                generated dependency file.
                Specifying -qmakedep without 'gcc' is equivalent to
                specifying -M.

         -MF<path>
                Specifies the target for the output generated by
                the -qmakedep or -M options, where <path> can be a
                full directory path or file name. Note that "-MF
                <path>" (with a space before the argument) is also
                acceptable. This option only has effect when
                specified with -qmakedep or -M.

         (C)-qmkshrobj, (C++)-qmkshrobj[=<priority>]
                Creates a shared object from the generated object
                files.
                The optional number specifies the priority level
                for initialization of all static objects in the
                file. <priority> may be any number from -214782623
                (highest priority-initialized first) to 214783647
                (lowest priority-initialized last). If no priority
                is specified, the default priority of 0 is used.
                The priority is not used when linking shared
                objects (using the xlc command) written in C.
                Specifying -qmkshrobj implies -qpic.
                See related options, -e <name> and -o <path>.

         -o <path>
                Specifies an output location for the object,
                assembler, or executable files created by the
                compiler. When the -o option is used during
                compiler invocation, <path> can be the name of
                either a file or a directory.

                Default: -o a.out

         -P     Preprocesses the C or C++ source files named in the
                compiler invocation and creates an output
                preprocessed source file for each input source
                file. The preprocessed output file has the same
                name as the output file, with a .i suffix.

         -S     Generates an assembler language file (.s) for each
                source file. The resulting .s files can be
                assembled to produce object .o files or an
                executable file (a.out).

  Input control options
         -+     (C++) Compiles any file, <file_name.nnn>, as a C++
                language file, where <nnn> is any suffix other than
                .a, .so, .o, .s, or .S.  This option is equivalent
                to the -qsourcetype=c++ option and should not be
                used together with the -qsourcetype option.

         -qcinc=<directory_path> | -qnocinc
                (C++) Instructs the compiler to place an extern "C"
                { } wrapper around the contents of an include file,
                where <directory_path> is the location of that
                include file.

                Default: -qnocinc

         -I<directory_path>
                Specifies an additional search path for include
                file names that do not specify an absolute path.

                Default:
                     The following directories are searched, in the
                     following order, after any paths that are
                     specified by the -I option:
                     1) The current directory.
                     2) The directory where the source file is
                     located.
                     3) /usr/include.

         -qidirfirst | -qnoidirfirst
                Specifies the search order for files included with
                the #include "<file_name>" directive. Use
                -qidirfirst with the -I option. If -qidirfirst is
                specified, the directories specified by the
                -I<directory_path> option are searched before the
                directory in which the current file resides.

                Default: -qnoidirfirst

         -qinclude=<file_path>
                Specifies additional header files that are included
                before the first line of a source file in a
                compilation unit and ahead of any headers which may
                be specified by an #include statement on the first
                line of the source file.

         -qsourcetype=<type>
                Determines whether to treat all recognized source
                files as if they are of the source type specified
                by <type> (regardless of file name suffix), or
                whether to use the file name suffix to determine
                the programming language.
                Note that the option only affects files that are
                specified on the command line following the option,
                but not those that precede the option. The
                -qsourcetype option should not be used together
                with the -+ option. The suboptions are:

                default
                     The compiler assumes that the programming
                     language of a source file will be implied by
                     its file name suffix.
                c
                     The compiler compiles all source files
                     following this option as if they are C
                     language source files.
                assembler
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files.
                assembler-with-cpp
                     The compiler compiles all source files
                     following this option as if they are assembler
                     language source files that need preprocessing.

                Default: -qsourcetype=default

         -qstdinc | -qnostdinc
                Specifies whether the standard directories are
                searched for files included by the #include
                <file_name> and #include "file_name" directives.
                The -qnostdinc option excludes the standard include
                directories from the search path.

                Default: -qstdinc

  Language element control options
         -qaltivec | -qnoaltivec
                Instructs the compiler to support vector data types
                and operators and is accepted when the architecture
                specified by the -qarch option supports vector
                instructions and -qenablevmx is enabled.

                Default: -qnoaltivec

         -qasm[=<sub>] | -qnoasm[=<sub>]
                Controls the interpretation of, and subsequent
                generation of code for, asm statements.
                In (C), <sub> can only be 'gcc'.
                In (C++), <sub> can be:
                gcc
                     Interprets asm statements using GCC syntax.
                stdcpp
                     Interprets asm statements using stdcpp syntax.

                Default:
                     (C++) -qnoasm=stdcpp in compat366 or strict98
                     modes, and -qasm=gcc otherwise.
                     (C) -qasm=gcc

         -qcpluscmt | -qnocpluscmt
                (C) Permits the usage of "//" to introduce a
                comment that lasts until the end of the current
                source line, as in C++.

                Default:
                     o -qcpluscmt when you invoke the compiler with
                     xlc, xlc_r, cc, or cc_r, or when -qlanglvl is
                     set to stdc99 or extc99.
                     o -qnocpluscmt otherwise.

         -D<name>[=[<def>]]
                Defines <name> as in the #define directive. <def>
                is an optional definition or value assigned to
                <name>. Specifying -D<name>= (with no <def>) is
                equivalent to #define <name>; specifying
                -D<name> is equivalent to #define <name> 1.

         -qdbcs | -qnodbcs
                Specifies that string literals and comments can
                contain multi-byte characters. This is equivalent
                to -qmbcs.

                Default: -qnodbcs

         -qdfp | -qnodfp
                Enables compiler support for decimal floating-point
                types and literals.

                Default: -qnodpf

         -qdigraph | -qnodigraph
                Allows usage of digraph key combinations or
                keywords to represent characters not found on some
                keyboards.

                Default:
                     (C) -qdigraph when -qlanglvl is extc89,
                     extended, extc99 or stdc99, and -qnodigraph
                     otherwise.
                     (C++) -qdigraph

         -qdollar | -qnodollar
                Allows the '$' symbol to be used in the names of
                identifiers. When -qdollar is in effect, the dollar
                symbol '$' in an identifier is treated as a base
                character. If the options -qnodollar and
                -qlanglvl=ucs are both enabled, the dollar symbol
                is treated as an extended character.

                Default: -qnodollar

         -qignprag=<option>
                Instructs the compiler to ignore certain pragma
                statements. The options are:

                disjoint
                     Ignores all #pragma disjoint directives in the
                     source file.
                isolated_call
                     Ignores all #pragma isolated_call directives
                     in the source file.
                all
                     Ignores all #pragma isolated_call directives
                     and #pragma disjoint directives in the source
                     file.
                omp
                     Ignores all OpenMP parallel processing
                     directives in the source file.
                ibm
                     (C) Ignores all #pragma ibm snapshot
                     directives and all IBM SMP directives in the
                     source file.

         -qkeyword=<keyword> | -qnokeyword=<keyword>
                Controls whether the specified name is treated as a
                keyword or as an identifier whenever it appears in
                a program source.
                By default, all the built-in keywords defined in
                the C and C++ language standards are reserved as
                keywords. You cannot add keywords to the language
                with this option. However, you can use
                -qnokeyword=<keyword> to disable built-in keywords,
                and use -qkeyword=<keyword> to reinstate those
                keywords.

                (C) This option can also be used with the following
                C keywords: restrict, typeof, asm and inline.
                (C++) This option can be used with all C++ built-in
                keywords.

         -qlanglvl=<suboptions_list>
                Selects the language level and language options for
                the compilation. <suboptions_list> is a colon-
                separated list of suboptions.

                (C) For C language programs, <suboptions_list> is
                {classic|extended|saa|saa12|stdc89|stdc99|extc89|extc99}:{ucs|noucs}.
                classic
                     Allows the compilation of non-stdc89 programs,
                     and conforms closely to the K&R level
                     preprocessor.
                extended
                     Provides compatibility with the RT compiler
                     and classic. This language level is based on
                     C89.
                saa
                     Compilation conforms to the current SAA(R) C
                     CPI language definition. This is currently SAA
                     C Level 2.
                saal2
                     Compilation conforms to the SAA C Level 2 CPI
                     language definition, with some exceptions.
                stdc89
                     Compilation conforms to the ANSI C89 standard,
                     also known as ISO C90.
                stdc99
                     Compilation conforms to the ISO C99 standard.
                extc89
                     Compilation conforms to the ANSI C89 standard,
                     and accepts implementation-specific language
                     extensions.
                extc99
                     Compilation conforms to the ISO C99 standard,
                     and accepts implementation-specific language
                     extensions.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in program
                     source code.
                     Default:
                       o -qlanglvl=ucs under language levels stdc99
                       and extc99.
                       o -qlanglvl=noucs for all other language
                       levels.

                (C++) The suboptions for C++ language programs are:
                compat366
                     Compilation conforms to some, but not all, IBM
                     C and C++ Compilers V3.6 features.
                extended
                     Compilation is based on the strict98, with
                     some differences to accommodate extended
                     language features.
                strict98
                     Compilation conforms to the ISO C++ standard
                     for C++ programs.
                anonstruct | noanonstruct
                     This suboption controls whether anonymous
                     structs and anonymous classes are allowed in
                     your C++ source. By default, the compiler
                     allows anonymous structs.
                anonunion | noanonunion
                     This suboption controls what members are
                     allowed in anonymous unions. When this
                     suboption is set to anonunion, anonymous
                     unions can have members of all types that
                     standard C++ allows in non-anonymous unions.
                ansifor | noansifor
                     This suboption controls whether scope rules
                     defined in the C++ standard apply to names
                     declared in for-init statements. By default,
                     standard C++ rules are used.
                ansisinit | noansisinit
                     This suboption can be used to select between
                     old (v3.6 or earlier) and current (v5.0 or
                     later) compiler object compatibility.
                c99__func__ | noc99__func__
                     This suboption instructs the compiler to
                     recognize the C99 __func__ identifier.
                     The c99__func__ suboption is enabled by
                     default when -qlanglvl=extended is enabled. It
                     can be enabled for any language level by
                     specifying -qlanglvl=c99__func__, or disabled
                     by specifying -qlanglvl=noc99__func__.
                c99complex | noc99complex
                     This suboption instructs the compiler to
                     recognize C99 complex data types and related
                     keywords. It is set by default for
                     -qlanglvl=extended.
                c99complexheader | noc99complexheader
                     This suboption instructs the compiler to use
                     the C99 complex.h header file.
                c99compoundliteral | noc99compoundliteral
                     This suboption instructs the compiler to
                     support the C99 compound literal feature. It
                     is set by default for -qlanglvl=extended.
                c99hexfloat | noc99hexfloat
                     This suboption enables support for C99-style
                     hexadecimal floating constants in C++
                     applications. It is on by default for
                     -qlanglvl=extended.
                c99vla | noc99vla
                     When c99vla is enabled, the compiler will
                     support the use of C99-type variable length
                     arrays in your C++ applications. It is set by
                     default for -qlanglvl=extended.
                compatzea | nocompatzea
                     The -qlanglvl=compatzea option is a
                     compatibility option that lets you continue to
                     use a zero extent array with dimension of 1.
                     Default: -qlanglvl=nocompatzea
                     Specifying -qlanglvl=compatzea has effect only
                     if -qlanglvl=zeroextarray is also enabled.
                dependentbaselookup | nodependentbaselookup
                     Provides the ability to specify compilation in
                     conformance with issue 213 of TC1 of the C++
                     standard.
                     Default: -qlanglvl=dependentbaselookup
                gnu_assert | nognu_assert
                     Enables or disables support for the following
                     GNU C system identification assertions:
                     '#assert', '#unassert', '#cpu', '#machine',
                     '#system'.
                gnu_complex | nognu_complex
                     This suboption instructs the compiler to
                     recognize GNU complex data types and related
                     keywords.
                gnu_computedgoto | nognu_computedgoto
                     Enables support for computed gotos. This
                     suboption is enabled for -qlanglvl=extended.
                gnu_explicitregvar | nognu_explicitregvar
                     (C) Allows you to control whether the compiler
                     accepts and ignores the specification of
                     explicit registers for variables.
                gnu_externtemplate | nognu_externtemplate
                     This suboption enables or disables extern
                     template instantiations.
                     Default:
                       gnu_externtemplate is enabled by default
                       when compiling to the extended language
                       level.
                gnu_include_next | nognu_include_next
                     Enables or disables support for the GNU C
                     #include_next preprocessor directive.
                     Default:
                       gnu_include_next is enabled by default for
                       -qlanglvl=extended.
                gnu_labelvalue | nognu_labelvalue
                     Enables or disables support for labels as
                     values.
                     Default:
                       gnu_labelvalue is enabled by default for
                       -qlanglvl=extended.
                gnu_locallabel | nognu_locallabel
                     Enables or disables support for locally-
                     declared labels.
                gnu_membernamereuse | nognu_membernamereuse
                     Enables or disables reusing a template name in
                     a member list as a typedef.
                gnu_suffixij | nognu_suffixij
                     Enables or disables support for GCC style
                     complex numbers. If gnu_suffixij is specified,
                     a complex number can be ended with suffix i/I
                     or j/J.
                     Default:
                       gnu_suffixij is enabled by default for
                       -qlanglvl=extended.
                gnu_varargmacros | nognu_varargmacros
                     This option is similar to
                     -qlanglvl=varargmacros. For the list of the
                     main differences, refer to the Compiler
                     Reference.
                     Default:
                       gnu_varargmacros is set by default for
                       -qlanglvl=extended.
                gnu_warning | nognu_warning
                     Enables or disables support for the GNU C
                     #warning preprocessor directive.
                illptom | noillptom
                     This suboption controls what expressions can
                     be used to form pointers to members. C/C++ can
                     accept some forms that are in common use, but
                     do not conform to the C++ standard. The
                     compiler allows these forms by default.
                implicitint | noimplicitint
                     This suboption controls whether the compiler
                     will accept missing or partially specified
                     types as implicitly specifying 'int'. This is
                     no longer accepted in the standard but may
                     exist in legacy code.
                     With the suboption set to noimplicitint, all
                     types must be fully specified.
                     With the suboption set to implicitint, a
                     function declaration at namespace scope or in
                     a member list will implicitly be declared to
                     return int.
                newexcp | nonewexcp
                     This suboption determines whether or not the
                     C++ new operator throws an exception. If the
                     -qlanglvl=newexcp option is specified, the
                     standard exception std::bad_alloc is thrown
                     when the requested memory allocation fails.
                     This option does not apply to the nothrow
                     versions of the new operator.
                     The standard implementation of the new
                     operators fully support exceptions. For
                     compatibility with previous versions of
                     VisualAge C++, these operators return 0 by
                     default.
                offsetnonpod | nooffsetnonpod
                     This suboption controls whether the offsetof
                     macro can be applied to classes that are not
                     data-only.
                     By default, the compiler allows offsetof to be
                     used with non-POD classes.
                olddigraph | noolddigraph
                     This option controls whether old-style
                     digraphs are allowed in your C++ source. It
                     applies only when -qdigraph is also set.
                     By default, the compiler supports only the
                     digraphs specified in the C++ standard.
                oldfriend | nooldfriend
                     This option controls whether friend
                     declarations that name classes without
                     elaborated class names are treated as C++
                     errors.
                     By default, the compiler lets you declare a
                     friend class without elaborating the name of
                     the class with the keyword class.
                oldmath | nooldmath
                     This suboption controls which versions of math
                     function declarations in <math.h> are included
                     when you specify math.h as an included or
                     primary source file.
                     By default, the new standard math functions
                     are used. Build with -qlanglvl=nooldmath for
                     strict compliance with the C++ standard. For
                     compatibility with modules that were built
                     with earlier versions of VisualAge C++ and
                     predecessor products, you may need to build
                     with -qlanglvl=oldmath.
                oldtempacc | nooldtempacc
                     This suboption controls whether access to a
                     copy constructor to create a temporary object
                     is always checked, even if creation of the
                     temporary object is avoided.
                     By default, the compiler suppresses the access
                     checking.
                oldtmplalign | nooldtmplalign
                     Controls whether alignment rules specified for
                     nested templates are ignored.
                     When the default, -qlanglvl=nooldtmplalign, is
                     in effect, these alignment rules are not
                     ignored.
                     Specify -qlanglvl=oldtmplalign for
                     compatibility with VisualAge C++ 4.0 and
                     predecessor products.
                oldtmplspec | nooldtmplspec
                     This suboption controls whether template
                     specializations that do not conform to the C++
                     standard are allowed.
                     By default, the compiler allows these old
                     specializations (-qlanglvl=nooldtmplspec).
                redefmac | noredefmac
                     Specifies whether a macro can be redefined
                     without a prior #undef or undefine()
                     statement.
                trailenum | notrailenum
                     This suboption controls whether trailing
                     commas are allowed in enum declarations.
                     By default, the compiler allows one or more
                     trailing commas at the end of the enumerator
                     list.
                typedefclass | notypedefclass
                     This suboption provides backwards
                     compatibility with previous versions of
                     VisualAge C++ and predecessor products.
                ucs | noucs
                     This suboption controls whether Unicode
                     characters are allowed in identifiers, string
                     literals and character literals in C++
                     sources.
                     Default: -qlanglvl=noucs
                varargmacros | novarargmacros
                     This C99 feature allows the use of a variable
                     argument list in function-like macros in your
                     C++ applications.
                zeroextarray | nozeroextarray
                     This suboption controls whether zero-extent
                     arrays are allowed as the last non-static data
                     member in a class definition.
                     By default, the compiler allows arrays with
                     zero elements.

                The default depends on the invocation command used:

                Command                       Default
                _____________________________________________

                xlC/xlc++                     extended
                xlc                           extc99
                cc                            extended
                c89                           stdc89
                c99                           stdc99

         -qlonglong | -qnolonglong
                Allows IBM-style long long integers. This option
                cannot be used with -qlanglvl=stdc99 or
                -qlanglvl=extc99.

                Default:
                     o -qlonglong when compiling with xlc, xlc++,
                     xlC or cc.
                     o -qnolonglong when compiling with c89 or c99.

         -qmacpstr | -qnomacpstr
                Converts Pascal string literals into null-
                terminated strings where the first byte contains
                the length of the string.

                Default: -qnomacpstr

         -qmbcs | -qnombcs
                Specifies that string literals and comments can
                contain multi-byte characters.  This is equivalent
                to -qdbcs.

                Default: -qnombcs

         -qstaticinline | -qnostaticinline
                (C++) Controls whether inline functions are treated
                as static or extern. Specifying -qnostaticinline
                means the inline functions are treated as having
                extern linkage.

                Default: -qnostaticinline

         -qtabsize=<size>
                Changes the length of tabs as perceived by the
                compiler, where <size> is the number of character
                spaces representing a tab in the source program.

                Default: -qtabsize=8

         -qtrigraph | -qnotrigraph
                Allows trigraph key combinations to represent
                characters not found on some keyboards.

                Default: -qtrigraph

                However, if -qlanglvl=classic is enabled or
                implied, the trigraphs are not recognized by
                default.

         -U<name>
                Undefines the identifier <name> defined by the
                compiler or by the -D<name> option.

         -qutf | -qnoutf
                Enables recognition of UTF literal syntax.

                Default:
                     o (C) -qnoutf
                     o (C++) -qutf for all language levels except
                     -qlanglvl=strict98
                     o (C++) -qnoutf when -qlanglvl=strict98 is in
                     effect

  Template control options (C++ only)
         -qtempinc[=<directory_path>] | -qnotempinc
                (C++) Generates separate template include files for
                template functions and class declarations, and
                places these files in a directory which can be
                optionally specified.

                Default: -qnotempinc

         -qtemplatedepth=<number>
                (C++) Specifies the maximum number of recursively
                instantiated template specializations that will be
                processed by the compiler. <number> can be a value
                between 1 and INT_MAX.

                Default: -qtemplatedepth=300

         -qtemplaterecompile | -qnotemplaterecompile
                (C++) Helps manage dependencies between compilation
                units that have been compiled using the
                -qtemplateregistry compiler option.

                Default: -qnotemplaterecompile

         -qtemplateregistry[=<filename>] | -qnotemplateregistry
                (C++) Maintains records of all templates as they
                are encountered in the source and ensures that only
                one instantiation of each template is made.

                Default: -qnotemplateregistry

         -qtempmax=<number>
                (C++) Specifies the maximum number of template
                include files to be generated by the -qtempinc
                option for each header file.

                Default: -qtempmax=1

         -qtmplinst=<suboption>
                (C++) Allows you to manage implicit template
                instantiations. <suboption> is one of the
                following:

                none
                     Instantiates only the inline functions. If
                     this is specified, -qtempinc and
                     -qtemplateregistry are ignored.
                noinline
                     Suppresses all implicit instantiations.
                auto
                     Handles the implicit instantiations according
                     to the -qtempinc and -qtemplateregistry
                     options. If both options are off, then
                     implicit instantiations are always performed.
                always
                     Always perform implicit instantiations. This
                     will ignore the -qtempinc and
                     -qtemplateregistry options.

                Default: -qtmplinst=auto

         -qtmplparse=<option>
                (C++) Controls whether parsing and semantic
                checking are applied to template definition
                implementations or only to template instantiations.
                The compiler has the option to produce warning or
                error messages. The suboptions are:

                no
                     Does not parse, to reduce the number of errors
                     issued in code written for previous versions
                     of the compiler.
                warn
                     Parses template definitions and issues warning
                     messages for semantic errors.
                error
                     Treats problems in template definitions as
                     errors, even if the template is not
                     instantiated.

                Default: -qtmplparse=no

  Floating-point and integer control options
         -qbitfields={signed|unsigned}
                Specifies whether bit fields will be signed or
                unsigned.

                Default: -qbitfields=unsigned

         -qchars={signed|unsigned}
                Specifies whether the data type char will be signed
                or unsigned.

                Default: -qchars=unsigned

         -qenum=<suboption>
                Specifies the amount of storage occupied by
                enumerations, where <suboption> can be:

                small
                     Specifies that enumerations occupy the
                     smallest amount of space (1, 2, 4, or 8 bytes)
                     that can accurately represent the range of
                     values in the enumeration. Signage is
                     unsigned, unless the range of values includes
                     negative values.
                int
                     Specifies that enumerations occupy 4 bytes and
                     are represented by int.
                intlong
                     Specifies that enumerations occupy 8 bytes of
                     storage if the range of values in the
                     enumeration exceeds the limit for int.
                     Otherwise, the enumerations occupy 4 bytes of
                     storage and are represented by int.
                1
                     Specifies that enumerations occupy 1 byte.
                     Type is signed or unsigned char.
                2
                     Specifies that enumerations occupy 2 bytes.
                     Type is signed or unsigned short.
                4
                     Specifies that enumerations occupy 4 bytes.
                     Type is signed or unsigned int.
                8
                     Specifies that enumerations occupy 8 bytes.
                     Type is signed or unsigned long long in 32-bit
                     mode, and signed or unsigned long in 64-bit
                     mode.

                Default: -qenum=intlong

         -qfloat=<suboptions_list>
                Specifies various floating-point suboptions. This
                provides different strategies for speeding up or
                improving the accuracy of floating-point
                calculations. <suboptions_list> is a colon-
                separated list of one or more of the following:

                dfpemulate | nodfpemulate
                     Specifies whether decimal floating-point
                     computations are implemented in hardware
                     instructions or emulated in software by calls
                     to library functions.
                     -qdfp must be enabled for either suboption to
                     have any effect. nodfpemulate is only valid on
                     a system that supports decimal floating-point
                     instructions; that is, on AIX 5.3 and higher,
                     and with -qarch=pwr6 in effect. dfpemulate is
                     required for all other -qarch values.
                     Default: dfpemulate
                fenv | nofenv
                     Specifies whether the code depends on the
                     hardware environment and whether to suppress
                     optimizations that could cause unexpected
                     results due to this dependency.
                     When nofenv is in effect, the compiler assumes
                     that the program does not depend on the
                     hardware environment, and that aggressive
                     compiler optimizations that change the
                     sequence of floating-point operations are
                     allowed to be performed. When fenv is in
                     effect, such optimizations are suppressed.
                     Default: nofenv
                fltint | nofltint
                     Speeds up floating-point-to-integer
                     conversions by using faster inline code that
                     does not check for overflows. -qfloat=nofltint
                     checks floating-point-to-integer conversions
                     for out-of-range values.
                     Default:
                       o nofltint at -O2 optimization.
                       o fltint when -qnostrict or -O3 or higher
                       optimization level is in effect.
                fold | nofold
                     Specifies that constant floating-point
                     expressions are to be evaluated at compile
                     time rather than at run time.
                     Default: fold
                hscmplx | nohscmplx
                     Speeds up operations involving complex
                     division and complex absolute value. This
                     suboption, which provides a subset of the
                     optimizations of the hsflt suboption, is
                     preferred for complex calculations.
                     Default: nohscmplx
                hsflt | nohsflt
                     The hsflt option speeds up calculations by
                     truncating instead of rounding computed values
                     to single precision before storing and on
                     conversions from floating-point to integer.
                     The nohsflt suboption specifies that single-
                     precision expressions are rounded after
                     expression evaluation and that floating-
                     point-to-integer conversions are to be checked
                     for out-of-range values.
                     Default: nohsflt
                hssngl | nohssngl
                     The hssngl option specifies that single-
                     precision expressions are rounded only when
                     the results are stored into float memory
                     locations. The nohssngl option specifies that
                     single-precision expressions are rounded after
                     expression evaluation. Using hssngl can
                     improve runtime performance and is safer than
                     using -qfloat=hsflt.
                     Default: nohssngl
                maf | nomaf
                     Makes floating-point calculations faster and
                     more accurate by using floating-point
                     multiply-add instructions where appropriate.
                     Default: maf
                nans | nonans
                     Generates extra instructions to detect
                     signalling NaN when converting from single-
                     precision to double-precision at run time. The
                     option nonans specifies that this conversion
                     need not be detected.
                     Default: nonans
                relax | norelax
                     Relaxes the strict IEEE-conformance slightly
                     for greater speed, typically by removing some
                     trivial, floating-point arithmetic operations,
                     such as adds and subtracts involving a zero on
                     the right.
                     Default: norelax
                rndsngl | norndsngl
                     Specifies that the result of each single-
                     precision (float) operation is to be rounded
                     to single precision. -qfloat=norndsngl
                     specifies that rounding to single-precision
                     happens only after full expressions have been
                     evaluated.
                     Default: rndsngl
                rngchk | norngchk
                     Specifying norngchk instructs the compiler to
                     skip range checking, allowing for increased
                     performance where division and sqrt operations
                     are performed repeatedly within a loop.
                     When rngchk is specified, range checking is
                     performed for input arguments for software
                     divide and inlined sqrt operations.
                     When -qstrict is active, the setting of this
                     option is forced to -qfloat=rngchk. When
                     -qnostrict is active, the setting of this
                     option is -qfloat=norngchk unless the
                     -qfloat=rngchk option is explicitly set by the
                     user.
                     Default: rngchk
                rrm | norrm
                     Prevents floating-point optimizations that are
                     incompatible with runtime rounding to plus and
                     minus infinity modes.
                     Default: norrm
                rsqrt | norsqrt
                     Specifies whether a sequence of code that
                     involves division by the result of a square
                     root can be replaced by calculating the
                     reciprocal of the square root and multiplying.
                     Allowing this replacement produces code that
                     runs faster. -qfloat=rsqrt has no effect
                     unless -qignerrno is also specified.
                     Default:
                       o norsqrt at -O2 optimization.
                       o rsqrt when when -qnostrict or -O3 or
                       higher optimization level is in effect.
                single | nosingle
                     Allows single-precision arithmetic
                     instructions to be generated for single-
                     precision floating-point values. All PowerPC
                     processors support single-precision
                     instructions; however, if you wish to preserve
                     the behavior of applications compiled for
                     earlier architectures, in which all floating-
                     point arithmetic was performed in double-
                     precision and then truncated to single-
                     precision, you can use
                     -qfloat=nosingle:norndsngl. This suboption
                     provides computation precision results
                     compatible with those provided by the
                     deprecated options
                     -qarch=com|pwr|pwrx|pwr2|p2sc|601|602|603.
                     Default: single
                spnans | nospnans
                     Detects signalling NaN on conversion from
                     single-precision to double-precision.
                     Default: nospnans

         -qldbl128 | -qnoldbl128
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qlongdouble.

                Default: -qnoldbl128

         -qlongdouble | -qnolongdouble
                Specifies whether to increase the long double size
                from 64 to 128 bits.
                This is equivalent to -qldbl128.

                Default: -qnolongdouble

         -qlonglit | -qnolonglit
                Makes unsuffixed literals into the long type in
                64-bit mode.

                Default: -qnolonglit

         -y<rounding_mode>
                Specifies the compile-time rounding mode of
                constant floating-point expressions.

                For binary floating-point types, <rounding_mode> is
                one of the following:
                m = round toward minus infinity
                n = round to the nearest representable number, ties
                to even
                p = round toward plus infinity
                z = round toward zero

                Default: -yn

                For decimal floating-point types, <rounding_mode>
                is one of the following:
                di = round toward infinities (away from zero)
                dm = round toward minus infinity
                dn = round to the nearest representable number,
                ties to even
                dna = round to the nearest representable number,
                ties away from zero
                dnz = round to the nearest representable number,
                ties toward zero
                dp = round toward plus infinity
                dz = round toward zero

                Default: -ydn

  Object code control options
         -q32, -q64
                Selects either 32-bit or 64-bit compilation mode.
                Use the -q32 and -q64 options, along with the
                -qarch and -qtune compiler options, to optimize the
                output of the compiler to the architecture on which
                that output will be used.

                Default: -q32

         -qalloca
                (C) Substitutes inline code for calls to function
                alloca, as if #pragma alloca directives were in the
                source code.

         -ma    (C) Substitutes inline code for calls to function
                alloca.

         -qeh[={v5|v6}] | -qnoeh
                (C++) Controls whether exception handling is
                enabled in the module being compiled.

                v5
                     Instructs the compiler to generate exception-
                     handling code that is compatible with
                     VisualAge C++ V5.0.
                v6
                     Instructs the compiler to generate new
                     exception-handling code, compatible with
                     VisualAge C++ V6.0, that correctly handles
                     try-catch blocks nested within other catch
                     blocks.

                Default: -qeh=v6

         -qexpfile=<file_name>
                Saves the exported symbols in the specified file
                and is only used together with the -qmkshrobj
                compiler option.
                Refer to the -qmkshrobj option for more
                information.

         -qfuncsect[=[no]implicitstaticref] | -qnofuncsect
                Places instructions for each function in a separate
                object file control section or csect. -qfuncsect
                can take the following suboption:

                implicitstaticref | noimplicitstaticref
                     Specifies whether the compiler generates dummy
                     references to the static area. Specifying
                     -qfuncsect with no suboption implies
                     implicitstaticref. Specifying
                     noimplicitstaticref removes unnecessary
                     references to the static data area.

                Default: -qnofuncsect

         -qinlglue | -qnoinlglue
                This option inlines glue code that optimizes
                external function calls when compiling at -q64 and
                -O2 and higher.

                Default: -qnoinlglue

         -qkeepinlines | -qnokeepinlines
                (C++) Instructs the compiler to keep or discard
                definitions for unreferenced extern inline
                functions. Discarding these definitions can reduce
                the size of the object files. The -qkeepinlines
                setting keeps the definitions of unreferenced
                extern inline functions.

                Default: -qnokeepinlines

         -qpic[={small|large}] | -qnopic
                Generates position-independent code (pic). Specify
                -qpic=small if the global offset table must be 64
                Kb or smaller, or -qpic=large if it can be larger
                than 64 Kb.

                Default: -qpic=small

         -qppline | -qnoppline
                When used in conjunction with the -E or -P options,
                enables or disables the generation of #line
                directives in the preprocessed output.

                Default:
                     o -qnoppline with -P
                     o -qppline with -E

         -qpriority=<num>
                (C++) Specifies the priority level for the
                initialization of static objects, where <num> is
                the initialization priority level assigned to the
                static objects within a file, or the priority level
                of a shared or non-shared file or library.
                You can specify a priority level from -(2147483647
                + 1) (highest priority) to +2147483647 (lowest
                priority).

                Default: -qpriority=0

         -qproto | -qnoproto
                (C) Assumes that all functions are prototyped.
                Asserts that procedure call points agree with their
                declarations even if the procedure has not been
                prototyped. This allows the caller to pass
                floating-point arguments in floating-point
                registers instead of general-purpose registers.

                Default: -qnoproto

         -r     Produces a relocatable object. This permits the
                output file to be produced even though it contains
                unresolved symbols.

         -qreserved_reg=<registers_list>
                Indicates that the specified register(s) cannot be
                used during the compilation, except as a stack
                pointer, frame pointer or in a different fixed
                role. <registers_list> is a colon-separated list of
                registers.

         -qro | -qnoro
                Specifies the storage type for string literals and
                puts string literals in read-only storage.

                Default:
                     o -qnoro with cc and its derivatives.
                     o -qro otherwise.

         -qroconst | -qnoroconst
                Specifies the storage location for constant values.

                Default:
                     o -qroconst with xlc, xlc++, xlC, c89 and c99
                     invocations commands.
                     o -qnoroconst with cc.

         -qroptr | -qnoroptr
                Specifies the storage location for constant
                pointers.

                Default: -qnoroptr

         -qrtti=<option> | -qnortti
                (C++) Generates runtime type identification (RTTI)
                information for the typeid and dynamic_cast
                operators.  The suboptions are:

                all
                     Generates the information needed for the RTTI
                     typeid and dynamic_cast operators.
                type | typeinfo
                     Generates the information needed for the RTTI
                     typeid operator only.
                dyna | dynamiccast
                     Generates the information needed for the RTTI
                     dynamic_cast operator only.

                Default: -qnortti

         -s     Strips the symbol table, line number information,
                and relocation information from the output file.

         -qsaveopt | -qnosaveopt
                Saves the command-line options used for compiling a
                source file, the version and level of each compiler
                component invoked during compilation, and other
                information to the corresponding object file.
                This option must be used with the -c option.

                Default: -qnosaveopt

         -qstatsym | -qnostatsym
                Adds user-defined, non-external names that have a
                persistent storage class (such as initialized and
                uninitialized static variables) to the name list
                (the symbol table of objects).

                Default: -qnostatsym

         -qtbtable=<suboption>
                Generates a traceback table that contains
                information about each function, including the type
                of function as well as stack frame and register
                information. The traceback table is placed in the
                text segment at the end of its code.  Suboptions
                include:

                none
                     No traceback table is generated.
                small
                     A traceback table is generated with no name or
                     parameter information. This is the default
                     with optimization if -g is not specified.
                full
                     A full traceback table is generated. This is
                     the default with -qnoopt or -g specified.

                Default:
                     o -qtbtable=full when compiling non-optimized
                     (without -O) or for debugging (with -g).
                     o -qtbtable=small otherwise.

         -qthreaded | -qnothreaded
                Ensures that all optimizations will be thread-safe
                for executing in a multi-threaded environment.

                Default:
                     o -qthreaded when compiling invocation
                     commands ending in "_r" or "_r7".
                     o -qnothreaded otherwise.

         -qtls[=<model>] | -qnotls
                Specifies the thread-local storage model to be used
                by the application, where <model> can be:

                global-dynamic
                     This model is the most general, and can be
                     used for all thread-local variables.
                local-dynamic
                     This model provides better performance than
                     the global-dynamic model, and can be used for
                     thread-local variables defined in
                     dynamically-loaded modules.
                initial-exec
                     This model provides better performance than
                     the global-dynamic or local-dynamic models,
                     and can be used for thread-local variables
                     defined in dynamically-loaded modules,
                     provided that those modules are loaded at the
                     same time as the executable.
                local-exec
                     This model provides the best performance of
                     all of the models, but can only be used when
                     all thread-local variables are defined and
                     referenced by the main executable.

                Default:
                     o -qtls=unsupported
                     o -qtls=initial_exec if the -qnopic compiler
                     option is enabled.
                     o -qtls=global_dynamic if the -qpic compiler
                     option is enabled.

         -qunique | -qnounique
                (C++) Generates unique names for static
                constructor/destructor file compilation units.

                Default: -qnounique

         -qweakexp | -qnoweakexp
                When used with the -qmkshrobj or -G options,
                includes or excludes global symbols marked as weak
                from the export list generated when you create a
                shared object.

                Default: -qweakexp

         -qweaksymbol | -qnoweaksymbol
                Instructs the compiler to generate weak symbols.

                Default: -qweaksymbol

         -qxcall | -qnoxcall
                Generates code to treat static functions within a
                compilation unit as if they were external
                functions.

                Default: -qnoxcall

  Error checking and debugging options
         -#     Traces the compilation and generates information on
                the progress of the compilation without invoking
                the preprocessor, compiler, or linkage editor.

         -qcheck[=<suboptions_list>] | -qnocheck
                Generates code that performs certain types of
                runtime checking. If a violation is encountered, a
                runtime exception is raised by sending a SIGTRAP
                signal to the process. <suboptions_list> is a
                colon-separated list of one or more of the
                following:

                all
                     Enables all suboptions.
                bounds | nobounds
                     Performs runtime checking of addresses when
                     subscripting within an object of known size.
                divzero | nodivzero
                     Performs runtime checking of integer division.
                     A trap will occur if an attempt is made to
                     divide by zero.
                nullptr | nonullptr
                     Performs runtime checking of addresses
                     contained in pointer variables used to
                     reference storage.

                Default: -qnocheck

         -qdbxextra | -qnodbxextra
                (C) Specifies that all typedef declarations,
                struct, union, and enum type definitions are
                included for debugging. Use this option with the -g
                option to produce additional debugging information
                for use with a debugger.

                Default: -qnodbxextra

         -qdpcl | -qnodpcl
                Generates symbols that can be used by tools based
                on the Dynamic Probe Class Library (DPCL) to see
                the structure of an executable file.

                Default: -qnodpcl

         -qextchk | -qnoextchk
                Generates bind-time type-checking information and
                checks for compile-time consistency.

                Default: -qnoextchk

         -qflttrap[=<suboptions_list>] | -qnoflttrap
                Generates instructions to detect and trap runtime
                floating-point exceptions. <suboptions_list> is a
                colon-separated list of one or more of the
                following suboptions:

                enable
                     Enables trapping of the specified exceptions.
                imprecise
                     Only checks for the specified exceptions on
                     subprogram entry and exit.
                inexact
                     Detects floating-point inexact exceptions.
                invalid
                     Detects floating-point invalid operation
                     exceptions.
                nanq
                     Generates code to detect and trap NaNQ (Not a
                     Number Quiet) exceptions handled or generated
                     by floating-point operations.
                overflow
                     Detects floating-point overflow.
                underflow
                     Detects floating-point underflow.
                zerodivide
                     Detects floating-point division by zero.

                Default: -qnoflttrap

         -qformat=<options_list> | -qnoformat
                Warns of possible problems with string input and
                output format specifications. Functions diagnosed
                are printf, scanf, strftime, strfmon family
                functions and functions marked with format
                attributes. <options_list> is a comma-separated
                list of one or more of the following suboptions:

                all | noall
                     Turns on all format diagnostic messages.
                exarg | noexarg
                     Warns if excess arguments appear in printf and
                     scanf style function calls.
                nlt | nonlt
                     Warns if a format string is not a string
                     literal, unless the format function takes its
                     format arguments as a va_list.
                sec | nosec
                     Warns of possible security problems in use of
                     format functions.
                y2k | noy2k
                     Warns of strftime formats that produce a 2-
                     digit year.
                zln | nozln
                     Warns of zero-length formats.

                Default:
                     o -qnoformat, which is equivalent to
                     -qformat=noall.
                     o -qformat=all if -qformat is specified
                     without any suboptions.

         -qfullpath | -qnofullpath
                Records the full or absolute path names of source
                and include files in object files compiled with
                debugging information (when you use the -g option).

                Default: -qnofullpath

         -g     Generates debug information for debugging tools.
                -qdbg is the long form of -g.
                -g implies the -Q! option.

         -qhalt=<sev>
                Stops the compiler after the first phase if the
                severity level of errors detected equals or exceeds
                the specified level, <sev>. The severity levels in
                increasing order of severity are:

                i = informational messages
                w = warning messages
                e = error messages (C only)
                s = severe error messages

                Default: -qhalt=s

         -qhaltonmsg=<msgnum_list>
                (C++) Stops the compiler after the compilation
                phase where it encounters the specified message
                number(s), where <msgnum_list> is a comma-separated
                list of message numbers.

         -qheapdebug | -qnoheapdebug
                Enables debug versions of memory management
                functions.

                Default: -qnoheapdebug

         -qinfo[=[<suboption>][<groups_list>]] | -qnoinfo
                Produces or suppresses informational messages.
                <groups_list> is a colon-separated list. If a
                <groups_list> is specified along with a
                <suboption>, a colon must separate them. The
                suboptions are:

                all
                     Enables all diagnostic messages for all
                     groups.
                noall
                     Disables all diagnostic messages for all
                     groups.
                private
                     Lists shared variables that are made private
                     to a parallel loop.
                reduction
                     Lists variables that are recognized as
                     reduction variables inside a parallel loop.

                <groups_list> turns on or off specific groups of
                messages and is a colon-separated list of one or
                more of the following:

                c99 | noc99
                     (C) C code that might behave differently
                     between C89 and C99 language levels
                cls | nocls
                     C++ classes
                cmp | nocmp
                     Possible redundancies in unsigned comparisons
                cnd | nocnd
                     Possible redundancies or problems in
                     conditional expressions
                cns | nocns
                     Operations involving constants
                cnv | nocnv
                     Conversions
                dcl | nodcl
                     Consistency of declarations
                eff | noeff
                     Statements and pragmas with no effect
                enu | noenu
                     Consistency of enum variables
                ext | noext
                     Unused external definitions
                gen | nogen
                     General diagnostic messages
                gnr | nognr
                     Generation of temporary variables
                got | nogot
                     Use of goto statements
                ini | noini
                     Possible problems with initialization
                lan | nolan
                     Language level effects
                obs | noobs
                     Obsolete features
                ord | noord
                     Unspecified order of evaluation
                par | nopar
                     Unused parameters
                por | nopor
                     Non-portable language constructs
                ppc | noppc
                     Possible problems with using the preprocessor
                ppt | noppt
                     Trace of preprocessor actions
                pro | nopro
                     Missing function prototypes
                rea | norea
                     Code that cannot be reached
                ret | noret
                     Consistency of return statements
                trd | notrd
                     Possible truncation or loss of data or
                     precision
                tru | notru
                     Variable names truncated by the compiler
                trx | notrx
                     Rounding of hexadecimal floating-point
                     constants
                uni | nouni
                     Uninitialized variables
                upg | noupg
                     Upgrade issues from one release to the next
                     release
                use | nouse
                     (C++) Unused auto and static variables
                vft | novft
                     (C++) Generation of virtual function tables in
                     C++ programs
                zea | nozea
                     Zero-extent arrays

                Default:
                     (C) -qnoinfo
                     (C++) -qinfo=lan:trx
                If -qinfo is specified without a suboption, the
                default is -qinfo=all for C and -qinfo=all:noppt
                for C++.

         -qinitauto=<hex_value> | -qnoinitauto
                Initializes each byte or word of storage for
                automatic variables to the specified hexadecimal
                value <hex_value>. This generates extra code and
                should only be used for error determination.

                Default: -qnoinitauto

         -qkeepparm | -qnokeepparm
                Ensures that function parameters are stored on the
                stack even if the application is optimized. As a
                result, parameters remain in the expected memory
                location, providing access to the values of these
                incoming parameters to tools such as debuggers.

                Default: -qnokeepparm

         -qlinedebug | -qnolinedebug
                Generates only abbreviated line number and source
                file name information for the debugger.

                Default: -qnolinedebug

         -qmaxerr=<num>[:<sev>] | -qnomaxerr
                Instructs the compiler to halt compilation when the
                specified number of errors of the specified
                severity (by default, the value of -qhalt) or
                greater is reached. <num> must be an integer. The
                severity levels, <sev>, are:

                i = informational
                w = warning
                e = error (C only)
                s = severe error

                Default: -qnomaxerr

         -qoptdebug | -qnooptdebug
                When used with high levels of optimization,
                -qoptdebug produces source files containing
                optimized pseudocode that can be read by a
                debugger.
                An output file with a .optdbg extension is created
                for each input file compiled with -qoptdebug. You
                can use the information contained in this file to
                help you understand how your code actually behaves
                under optimization.

                Default: -qnooptdebug

         -qsymtab={unref|static}
                (C) Determines what types of information appear in
                the symbol table. The suboptions are:

                unref
                     Specifies that all typedef declarations,
                     struct, union, and enum type definitions are
                     included for processing by the debugger.
                static
                     Adds user-defined, non-external names that
                     have a persistent storage class (such as
                     initialized and uninitialized static
                     variables) to the name list.

                Default:
                     The default is to not add static variables to
                     the symbol table.

         -qsyntaxonly
                (C) Performs syntax checking without generating an
                object file.

                Default:
                     By default, source files are compiled and
                     linked to generate an executable file.

         -qwarn64 | -qnowarn64
                Enables checking for possible data conversion
                problems between 32-bit and 64-bit compiler modes.

                Default: -qnowarn64

  Listing and messages options
         -qattr[=full] | -qnoattr
                Produces a compiler listing that includes an
                attribute listing for all identifiers. If -qattr is
                specified, the listing contains only those
                identifiers that are used. If -qattr=full is
                specified, the listing contains all names. If
                -qnoattr is specified, no listing is produced.

                Default: -qnoattr

         -qdump_class_hierarchy
                (C++) For each class object, this option dumps a
                representation of its hierarchy and virtual
                function table layout to a file. The file name is
                created by appending ".class" to the source file
                name.

         -qflag=<listing_severity>:<terminal_severity>
                Defines the minimum severity level of diagnostic
                messages to be written to the listing file and to
                the user terminal. <listing_severity> is the
                minimum level for the listing file, and
                <terminal_severity> is the minimum level for the
                terminal. The message severity levels are:

                i = informational messages
                w = warning messages
                e = error, severe error and unrecoverable error
                messages (C only)
                s = severe error and unrecoverable error messages
                (C)
                s = severe error messages (C++)

                Default: -qflag=i:i

         -qlist[={offset|nooffset}] | -qnolist
                Produces a compiler listing that includes an object
                listing. You can use the object listing to help
                understand the performance characteristics of the
                generated code and to diagnose execution problems.

                offset | nooffset
                     Changes the offset of the PDEF header from
                     00000 to the offset of the start of the text
                     area.

                Specifying -qlist without the suboption is
                equivalent to list=nooffset.

                Default: -qnolist

         -qlistopt | -qnolistopt
                Produces a compiler listing that displays all the
                options that were in effect when the compiler was
                invoked.

                Default: -qnolistopt

         -qphsinfo | -qnophsinfo
                Reports the time taken in each compilation phase.
                Phase information is sent to standard output. The
                output takes the form <number1>/<number2> for each
                phase where <number1> represents the CPU time used
                by the compiler and <number2> represents the total
                of the compiler time and the time that the CPU
                spends handling system calls.

                Default: -qnophsinfo

         -qprint | -qnoprint
                Enables or suppresses listings. Specifying
                -qnoprint overrides all listing-producing options,
                regardless of where they are specified, to suppress
                listings.

                Default: -qprint

         -qreport | -qnoreport
                Instructs the compiler to produce transformation
                reports that show how program loops are optimized.
                The transformation reports are included as part of
                the compiler listing. This option requires -qhot or
                -qsmp in order to have effect.
                When used with -qipa=clonearch, -qreport produces
                transformation reports on the procedures that are
                cloned for the architectures specified by the
                option.

                Default: -qnoreport

         -qshowinc[=<types_list>] | -qnoshowinc
                Used with -qsource to selectively show user header
                files (includes using " ") or system header files
                (includes using < >) in the program source listing.
                <types_list> is a colon-separated list of one or
                more of the following types:

                usr | nousr
                     Specifies whether to show user include files.
                sys | nosys
                     Specifies whether to show system include
                     files.
                all
                     Shows both user and system include files.

                Default: -qnoshowinc

         -qsource | -qnosource
                Produces a compiler listing that includes source
                code.

                Default: -qnosource

         -qsrcmsg | -qnosrcmsg
                (C) Adds the corresponding source code lines to the
                diagnostic messages in the stderr file.

                Default: -qnosrcmsg

         -qsuppress=<msg_id> | -qnosuppress=[<msg_id>]
                Prevents the specified compiler or driver
                informational or warning messages from being
                displayed or added to the listings, where <msg_id>
                is a colon-separated list of message numbers to
                suppress or display.

                NOTE: In (C++), -qnosuppress requires that you
                supply message number(s), and in (C), -qnosuppress
                does not allow you to supply any.

                Default: -qnosuppress

         -v     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a comma-separated list.

         -V     Instructs the compiler to report information on the
                progress of the compilation, and names the programs
                being invoked within the compiler and the options
                being specified to each program. Information is
                displayed in a space-separated list.

         -qversion[=verbose]
                Displays the official compiler product name and the
                compiler version found on the system.

                verbose
                     Additionally displays information about the
                     version, release, and level of each compiler
                     component installed.

         -w     Suppresses informational, language-level and
                warning messages.
                Specifying this option is equivalent to specifying
                -qflag=e:e in C or -qflag=s:s in C++.

         -qxref[=full] | -qnoxref
                Specifies whether to produce a compiler listing
                that includes a cross-reference listing of all
                identifiers. Specifying -qxref will report only
                identifiers that are used, -qxref=full reports all
                identifiers in the program, and -qnoxref does not
                report any identifiers in the program. The
                -qnoprint option overrides this option.

                Default: -qnoxref

  Optimization and tuning options
         -qaggrcopy={overlap|nooverlap}
                Enables destructive copy operations for structures
                and unions.

                overlap | nooverlap
                     Enables or disables optimizations for
                     structure and union assignments. nooverlap
                     assumes that the source and destination for
                     structure and union assignments do not
                     overlap, allowing the compiler to generate
                     faster code. overlap inhibits these
                     optimizations.

                Default: -qaggrcopy=nooverlap

         -qalias=<suboptions_list>
                Specifies the aliasing assertions to be applied to
                your compilation unit. <suboptions_list> is a
                colon-separated list of the following options:

                addrtaken | noaddrtaken
                     Variables are disjoint from pointers unless
                     their address is taken.
                allptrs | noallptrs
                     Pointers are never aliased if allptrs is
                     specified, but may be aliased if noallptrs is
                     specified. -qalias=allptrs implies
                     -qalias=typeptr.
                ansi | noansi
                     If ansi is specified, type-based aliasing is
                     used during optimization, which restricts the
                     lvalues that can be safely used to access a
                     data object. This option has no effect unless
                     you also specify the -O option.
                     Specifying -qalias=noansi turns off type-based
                     aliasing completely.
                global | noglobal
                     When global is in effect, type-based aliasing
                     rules are enabled during IPA link-time
                     optimization across compilation units. Both
                     -qipa and -qalias=ansi must be enabled for
                     -qalias=global to have an effect.
                     Specifying noglobal disables type-based
                     aliasing rules across compilation units.
                restrict | norestrict
                     When restrict is in effect, optimizations for
                     pointers qualified with the restrict keyword
                     are enabled. Specifying norestrict disables
                     optimizations for restrict-qualified pointers.
                     -qalias=restrict is independent from other
                     -qalias suboptions.
                typeptr | notypeptr
                     Pointers to different types are never aliased
                     if typeptr is specified, but may be aliased if
                     notypeptr is specified.

                Default:
                     (C++)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     (C)
                     -qalias=noaddrtaken:noallptrs:ansi:global:restrict:notypeptr
                     for all invocation commands except cc.
                     -qalias=noaddrtaken:noallptrs:noansi:global:restrict:notypeptr
                     for the cc invocation command.

         -qarch=<suboption>
                Specifies the general processor architecture for
                which the code (instructions) should be generated.
                In general, the -qarch option allows you to target
                a specific architecture for the compilation.  For
                any given -qarch setting, the compiler defaults to
                a specific, matching -qtune setting, which can
                provide additional performance improvements.  The
                suboptions are:

                auto
                     Automatically detects the specific
                     architecture of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                403
                     Produces object code containing instructions
                     that will run on the PowerPC 403 hardware
                     platform.
                604
                     Produces an object that contains instructions
                     that run on PowerPC 604 systems.
                pwr3
                     Produces an object that contains instructions
                     that run on the POWER3 hardware platforms.
                pwr4
                     Produces an object that contains instructions
                     that run on the POWER4 hardware platforms.
                pwr5
                     Produces an object that contains instructions
                     that run on the POWER5 hardware platforms.
                pwr5x
                     Produces an object that contains instructions
                     that run on the POWER5+ hardware platforms.
                pwr6
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 architected mode. If you
                     would like support for decimal floating-point
                     instructions, be sure to specify this
                     suboption during compilation.
                pwr6e
                     Produces object code containing instructions
                     that will run on the POWER6 hardware platforms
                     running in POWER6 raw mode.
                ppc
                     Produces an object that contains instructions
                     that run on any of the 32-bit PowerPC hardware
                     platforms. Using -q64 with ppc upgrades the
                     architecture to ppc64.
                ppc64
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform. When compiled
                     in 32-bit mode, the resulting object code may
                     include instructions that are not recognized
                     or behave differently when run on 32-bit
                     PowerPC platforms.
                ppcgr
                     In 32-bit mode, produces object code
                     containing optional graphics instructions for
                     PowerPC hardware platforms.
                     In 64-bit mode, produces object code
                     containing optional graphics instructions that
                     will run on 64-bit PowerPC platforms, but not
                     on 32-bit-only platforms. Using -q64 with
                     ppcgr upgrades the architecture to ppc64gr.
                ppc64gr
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics instructions.
                ppc64grsq
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional graphics and square root
                     instructions.
                ppc64v
                     Produces object code that will run on any 64-
                     bit PowerPC hardware platform that supports
                     the optional vector instructions, such as a
                     PowerPC 970.
                ppc970
                     Generates instructions specific to PowerPC 970
                     processors.
                rs64a
                     Produces an object that contains instructions
                     that run on an RS64I hardware platform.
                rs64b
                     Produces an object that contains instructions
                     that run on an RS64II hardware platform.
                rs64c
                     Produces an object that contains instructions
                     that run on an RS64III hardware platform.

                Default: -qarch=ppc

         -qcache=<suboptions_list>
                Describes the cache configuration for a specific
                target execution machine, where <suboptions_list>
                is a colon-separated list of one or more of the
                following suboptions:

                assoc=<number>
                     Specifies the set associativity of the cache,
                     where <number> is one of the following:
                          0                   Direct-mapped cache
                          1                   Fully associative cache
                          (number > 1)        n-way set associative cache
                auto
                     Automatically detects the specific cache
                     configuration of the compiling machine. It
                     assumes that the execution environment will be
                     the same as the compilation environment.
                cost=<cycles>
                     Specifies the performance penalty, in CPU
                     cycles, resulting from a cache miss.
                level=<level>
                     Specifies which level of cache is affected,
                     where level is one of the following::
                          1     Basic cache
                          2     Level-2 cache
                          3     Table Lookaside Buffer (TLB)
                     If a machine has more than one level of cache,
                     use a separate -qcache option.
                line=<bytes>
                     Specifies the line size of the cache.
                size=<Kbytes>
                     Specifies the total size of the cache.
                type=<cache_type>
                     The settings apply to the specified type of
                     cache, where <cache_type> is one of the
                     following:
                          C or c = Combined data and instruction
                          cache
                          D or d = Data cache
                          I or i = Instruction cache

                Default:
                     The -qtune setting determines the optimal
                     default -qcache settings for most typical
                     compilations. -O4, -O5, or -qipa must be
                     specified with the -qcache option.

         -qcompact | -qnocompact
                Reduces code size where possible, at the expense of
                execution speed. Code size is reduced by inhibiting
                optimizations that replicate or expand code inline.
                This option takes effect only if -O2 or higher is
                also used.

                Default: -qnocompact

         -qdataimported[=<variable_names>]
                Specifies variables that the compiler can assume
                are imported. <variable_names> is a colon-separated
                list of variables. Specifying -qdataimported
                without <variable_names> instructs the compiler to
                assume that all variables are imported. This is
                equivalent to specifying -qnotocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qdatalocal[=<variable_names>]
                Specifies variables that the compiler can assume
                are local. <variable_names> is a colon-separated
                list of variables. Specifying -qdatalocal with no
                variables instructs the compiler to assume that all
                variables are local. This is equivalent to
                specifying -qtocdata.
                (C++) Variable names must be specified using their
                mangled names.

         -qtocdata | -qnotocdata
                Marks all data as local.

                Default: -qnotocdata (marks all data as imported)

         -qdirectstorage | -qnodirectstorage
                Informs the compiler that write-through-enabled or
                cache-inhibited storage may be referenced.

                Default: -qnodirectstorage

         -qenablevmx | -qnoenablevmx
                Enables the generation of vector instructions for
                processors that support them. These instructions
                can offer higher performance when used with
                algorithmic-intensive tasks such as multimedia
                applications.
                For -qenablevmx to have effect, the architecture
                specified by the -qarch option must support vector
                instructions.
                If -qnoenablevmx is in effect, -qaltivec,
                -qvecnvol, and -qhot=simd cannot be used.

                Default: -qnoenablevmx

         -qfdpr | -qnofdpr
                Collects information about programs for use with
                the IBM Feedback Directed Program Restructuring
                (FDPR) performance-tuning utility.

                Default: -qnofdpr

         -qhot[=<suboption>] | -qnohot
                Specifies whether or not to perform high-order
                transformations during optimization. The suboptions
                are:

                arraypad[=<number>] | noarraypad
                     When <number> is specified, the compiler will
                     pad every array in the code. The pad amount
                     must be a positive integer value. Otherwise,
                     the compiler will pad any arrays where it
                     infers that there may be a benefit.
                level={0|1}
                     Specifies the level of high-order
                     transformation to perform during compilation.
                     0
                          The compiler performs a subset of the
                          high-order transformations. Some of these
                          include early distribution, loop
                          interchange, and loop tiling, as
                          examples. Optimization level -O3 implies
                          -qhot=level=0.
                     1
                          At level=1, full high-order
                          transformation is performed.
                          -qhot=level=1 is equivalent to -qhot and
                          the compiler options that imply -qhot
                          also imply -qhot=level=1, unless
                          -qhot=level=0 is explicitly specified.
                simd | nosimd
                     Converts certain operations in a loop that
                     apply to successive elements of an array into
                     a vector instruction. This call calculates
                     several results at one time, which is faster
                     than calculating each result sequentially. If
                     you specify -qhot=nosimd, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with vector
                     instructions.  To enable -qhot=simd, you must
                     specify an architecture that supports vector
                     instructions.
                vector | novector
                     When specified with -qnostrict and -qignerrno,
                     or an optimization level of -O3 or higher
                     (otherwise -qhot=vector has no effect), the
                     compiler converts certain operations in a loop
                     that apply to successive elements of an array
                     into a call to a routine in the Mathematical
                     Acceleration Subsystem (MASS) library, part of
                     the libxlopt.a library.
                     If you specify -qhot=novector, the compiler
                     performs optimizations on loops and arrays,
                     but avoids replacing certain code with calls
                     to vector library routines.

                Specifying -qhot without suboptions implies
                -qhot=nosimd, -qhot=noarraypad, -qhot=vector and
                -qhot=level=1. The -qhot option is also implied by
                -qsmp, -O4, and -O5.

                Default: -qnohot

         -qignerrno | -qnoignerrno
                Allows the compiler to perform optimizations that
                assume errno is not modified by system calls.

                Default: -qnoignerrno

         -qipa[=<suboptions_list>] | -qnoipa
                Turns on or customizes a class of optimizations
                known as interprocedural analysis (IPA).
                <suboptions_list> is a colon-separated list of the
                following suboptions:

                clonearch=<arch_name> | noclonearch
                     Specifies the architectures for which multiple
                     versions of the same instruction set are
                     produced, where <arch_name> is a comma-
                     separated list of architecture names. Use this
                     suboption if you require optimal performance
                     on multiple differing machines running the
                     same copy of your application.
                cloneproc=<function_name> |
                nocloneproc=<function_name>
                     Specifies the name of the functions to clone
                     for the architectures specified by the
                     clonearch suboption, where <function_name> is
                     a comma-separated list of function names.
                exits=<procedures>
                     Specifies names of functions which represent
                     program exits. <procedures> is a comma-
                     separated list of procedures.
                infrequentlabel=<procedures>
                     Specifies a comma-separated list of user-
                     defined labels that are likely to be called
                     infrequently during a program run.
                inline[=<suboption>]
                     Specifying 'inline' with no suboption asserts
                     that all appropriate procedures will be
                     inlined. <suboption> can be one of the
                     following:
                     auto|noauto
                          Enables or disables automatic function
                          inlining by the high-level optimizer.
                          When -qipa=inline=auto is in effect, the
                          compiler considers all functions that are
                          under the maximum size limit (see below)
                          for inlining. When -qipa=inline=noauto is
                          in effect, only procedures listed in the
                          <procedures> suboption are considered for
                          inlining.
                     <procedures>
                          Specifies a comma-separated list of
                          procedures to attempt to inline.
                     limit=<num>
                          Specifies a limit on the size of a
                          calling function after inlining. This
                          only takes effect when inline=auto is on.
                          If you do not specify a value for <num>,
                          <num> is 8192 by default.
                     threshold=<num>
                          Specifies the upper size limit on
                          procedures to inline. This only takes
                          effect when inline=auto is on. If you do
                          not specify a value for <num>, <num> is
                          1024 by default.
                     Default: auto
                noinline[=<procedures>]
                     Specifies a comma-separated list of procedures
                     which are not to be inlined. Specifying
                     noinline without <procedures>, asserts that no
                     procedures are to be inlined.
                isolated=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and do not
                     directly refer to any global variable.
                level=<level>
                     Determines the amount of IPA analysis and
                     optimization performed, where <level> can be
                     equal to:
                     0
                          Performs only minimal interprocedural
                          analysis and optimization.
                     1
                          Turns on inlining, limited alias
                          analysis, and limited call-site
                          tailoring.
                     2
                          Full interprocedural data flow and alias
                          analysis.
                     Default: 1
                list[={<file_name>|short|long}]
                     Specifies an output listing file name during
                     the link phase. The default name is "a.lst".
                     Specifying 'long' or 'short' can be used to
                     request more or less information in the
                     listing file to determine which listing
                     sections will be included.
                     Default: short
                lowfreq=<procedures>
                     Specifies a comma-separated list of procedures
                     that are likely to be called infrequently
                     during the course of a typical program run.
                malloc16 | nomalloc16
                     Informs the compiler that the dynamic memory
                     allocation routines will return 16-byte
                     aligned memory addresses. The compiler can
                     then optimize the code based on that
                     assertion.
                     Default: -qipa=malloc16
                missing={unknown|safe|isolated|pure}
                     Specifies the default assumption for
                     procedures not compiled with -qipa.
                     unknown
                          Greatly restricts the amount of
                          interprocedural optimization for calls to
                          unknown functions.
                     safe
                          Functions which do not indirectly call a
                          visible (not missing) function either
                          through direct call or function pointer.
                     isolated
                          Functions which do not directly reference
                          global variables accessible to visible
                          functions.
                     pure
                          Functions which are safe and isolated and
                          which do not indirectly alter storage
                          accessible to functions.
                     Default: missing=unknown
                object | noobject
                     Specifies whether to include standard object
                     code in the object files. Specifying
                     'noobject' can substantially reduce overall
                     compile time by not generating object code
                     during the first IPA phase.
                partition={small|medium|large}
                     Specifies the size of program sections that
                     are analyzed together. Larger partitions may
                     produce better analysis but require more
                     storage.
                     Default: partition=medium
                pure=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that are
                     "isolated", "safe", and do not modify any data
                     objects that are visible to the caller.
                safe=<procedures>
                     Specifies a comma-separated list of procedures
                     not compiled with -qipa and that do not call
                     any other part of the program.
                threads[=<suboption>] | nothreads
                     Runs portions of the IPA optimization process
                     during pass 2 in parallel threads, which can
                     speed up the linking process on multi-
                     processor systems. <suboption> can be one of
                     the following:
                     auto | noauto
                          When auto is in effect, the compiler
                          selects a number of threads heuristically
                          based on machine load. When noauto is in
                          effect, the compiler spawns one thread
                          per machine processor.
                     <number>
                          Instructs the compiler to use a specific
                          number of threads. <number> can be any
                          integer value in the range of 1 to 32767.
                          However, <number> is effectively limited
                          to the number of processors available on
                          your system.
                     Specifying threads with no suboptions implies
                     threads=auto.
                     Default: -qipa=threads
                unknown=<procedures>
                     Specifies a comma-separated list of procedures
                     that are not compiled with -qipa and that may
                     update global variables and dummy arguments
                     and call other parts of the program compiled
                     with -qipa.
                <file_name>
                     Specifies the name of a file that contains
                     suboption information in a special format.

                Regular expressions are supported when specifying
                procedure names for these suboptions:
                cloneproc, nocloneproc, exits, inline, noinline,
                isolated, lowfreq, pure, safe, unknown.
                (C++) In C++ programs, procedure names must be
                given in mangled form.

                Default:
                -qnoipa
                -qipa=inline=auto:level=1:missing=unknown:partition=medium:threads=auto
                when -O4 is in effect.
                -qipa=inline=auto:level=2:missing=unknown:partition=medium:threads=auto
                when -O5 is in effect.
                -qipa=inline=auto:level=0:missing=unknown:partition=medium:threads=auto
                when -qpdf1 or -qpdf2 is in effect.

         -qisolated_call=<procedures>
                Informs the compiler that specific functions do not
                have or rely on side effects, other than those
                implied by their parameters. <procedures> is a
                colon-separated list of function names.

         -qlargepage | -qnolargepage
                Indicates that a program, designed to execute in a
                large page memory environment, can take advantage
                of large 16 MB pages provided on POWER4 and later
                systems.

                Default: -qnolargepage

         -qlibansi | -qnolibansi
                Assumes that all functions with the name of an ANSI
                C defined library function are, in fact, the
                library functions.

                Default: -qnolibansi

         -qmaxmem=<size>
                Limits the amount of memory used by certain
                memory-intensive optimizations to <size> kilobytes.
                When <size> is -1, the optimizer will use as much
                memory as needed.

                Default:
                     o -qmaxmem=8192 when -O2 level optimization is
                     set.
                     o -qmaxmem=-1 when -O3 level or greater
                     optimization is set.

         -qminimaltoc | -qnominimaltoc
                Avoids Table of Contents (TOC) overflow conditions
                by placing TOC entries into a separate data section
                for each object file. By default, the compiler will
                allocate at least one TOC entry for each unique
                non-automatic variable reference in your program.

                Default: -qnominimaltoc

         -O[<level>]
                Optimizes code at a choice of levels during
                compilation. This is equivalent to
                -qoptimize[=<level>]. <level> can be:

                0
                     Performs only quick local optimizations such
                     as constant folding and elimination of local
                     common subexpressions.
                2
                     Performs optimizations that the compiler
                     developers considered the best combination for
                     compilation speed and runtime performance. The
                     optimizations may change from product release
                     to release.
                3
                     Performs some memory and compile-time
                     intensive optimizations in addition to those
                     executed with -O2. The -O3 specific
                     optimizations have the potential to alter the
                     semantics of a program. The compiler guards
                     against these optimizations at -O2 and the
                     option -qstrict is provided at -O3 to turn off
                     these aggressive optimizations. Specifying -O3
                     implies -qhot=level=0.
                4
                     This option is the same as -O3, but also:
                       o sets the -qarch and -qtune options to the
                       architecture of the compiling machine.
                       o sets the -qcache option most appropriate
                       to the characteristics of the compiling
                       machine.
                5
                     Equivalent to -O4 -qipa=level=2.

                Specifying -O with no <level> is equivalent to
                specifying -O2.

                Default: -O0

         -qoptimize[=<level>] | -qnooptimize
                The long form of the -O option. -qoptimize=<level>
                is equivalent to -O<level>. See the -O option.

                Default: -qnooptimize

         -p, -pg, -qprofile={-p|-pg}
                Sets up the object files produced by the compiler
                for profiling.
                -pg is like -p, but it produces more extensive
                statistics.

         -qpdf1[=pdfname=<file_path] | -qnopdf1
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf1 produces an object that is instrumented to
                collect runtime execution information. This is
                phase 1 of the profile-directed feedback
                optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf1

         -qpdf2[=pdfname=<file_path>] | -qnopdf2
                Tunes optimizations through profile-directed
                feedback (PDF), where results from sample program
                execution are used to improve optimization near
                conditional branches and in frequently executed
                code sections.
                Used with a minimum optimization level of -O2,
                -qpdf2 tunes application performance using the data
                generated by running a program compiled with
                -qpdf1. This is phase 2 of the profile-directed
                feedback optimization process.

                pdfname=<file_path>
                     Specifies the location and name of the profile
                     data file containing the PDF profiling
                     information.
                     Default:
                       If you do not specify <file_path>, the
                       default file name is ._pdf and the file is
                       saved in the current working directory, or
                       in the directory named by the PDFDIR
                       environment variable, if it is set.

                Default: -qnopdf2

         -qprefetch | -qnoprefetch
                Enables generation of prefetching instructions such
                as dcbt and dcbz in compiled code.

                Default: -qprefetch

         -qprocimported[=<procedures>] | -qnoprocimported
                Specifies functions that the compiler can assume
                are imported. Imported functions are dynamically
                bound with a shared portion of a library. Code
                generated for calls to functions marked as imported
                may be larger, but is faster than the default code
                sequence generated for functions marked as unknown.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qproclocal[=<procedures>] | -qnoproclocal
                Specifies functions that the compiler can assume
                are local. Local functions are statically bound
                with the functions that call them; smaller, faster
                code is generated for calls to such functions.
                <procedures> is a colon-separated list of function
                identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -qprocunknown[=<procedures>] | -qnoprocunknown
                Specifies functions that the compiler can assume
                are unknown. Unknown functions are resolved to
                either statically or dynamically bound objects
                during linking. <procedures> is a colon-separated
                list of function identifiers.
                (C++) In C++ programs, function names must be
                specified using their mangled names.

         -Q[<suboption>]
                (C++) Instructs the compiler to try to inline
                functions. Inlining is performed if possible but,
                depending on which optimizations are performed,
                some functions might not be inlined.

                (C) Specifies which specific functions the compiler
                should attempt to inline. You must specify at least
                an optimization level of -O2 for inlining to take
                effect with -Q. To turn on inline expansion for
                calls to procedures in different scopes, you must
                also use the -qipa=inline.

                (C++) In the C++ language, this option can take the
                form:

                -Q
                     Compiler inlines all functions that it can.
                -Q!
                     Compiler does not inline any functions.

                (C) In the C language, this option can take the
                form:

                -Q
                     Attempts to inline all appropriate functions
                     with 20 executable source statements or fewer,
                     subject to the setting of any of the
                     suboptions to the -Q option. If -Q is
                     specified last, all functions are inlined.
                -Q!
                     Does not inline any functions. If -Q! is
                     specified last, no functions are inlined.
                -Q-<names>
                     Does not inline functions listed in <names>,
                     where <names> is a colon-separated list. All
                     other appropriate functions are inlined. The
                     option implies -Q.
                -Q+<names>
                     Attempts to inline the functions listed in
                     <names>, where <names> is a colon-separated
                     list. All other appropriate functions are
                     inlined.
                -Q=<threshold>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <threshold> for
                     the function to be inlined.

                Default: -Q!

         -qinline[<suboption>] | -qnoinline
                Specifies whether to attempt to inline functions
                instead of generating calls to a function.

                (C++) In C++, you cannot specify any suboptions.
                -qinline specifies that all appropriate functions
                should be inlined, and -qnoinline specifies that no
                functions should be inlined.

                (C) In C, this option can take the following forms:

                -qinline
                     The compiler attempts to inline all
                     appropriate functions with 20 executable
                     source statements or fewer, subject to any
                     other settings of the suboptions to the
                     -qinline option.
                -qinline+<procedures>
                     Attempts to inline the functions listed in
                     <procedures> and any other appropriate
                     functions, where <procedures> is a colon-
                     separated list.
                -qinline-<procedures>
                     Specifies that functions listed in
                     <procedures> do not get inlined, where
                     <procedures> is a colon-separated list.
                -qnoinline
                     Does not inline any functions.
                -qinline=threshold=<num>
                     Sets a size limit on the functions to be
                     inlined. The number of executable statements
                     must be less than or equal to <num> for the
                     function to be inlined. <num> must be a
                     positive integer.

                Default:
                     The default is to treat inline specifications
                     as a hint to the compiler, and the result
                     depends on other options that you select. If
                     you specify the -g option (to generate debug
                     information), inlining may be affected.

         -qshowpdf | -qnoshowpdf
                Used with -qpdf1 and a minimum optimization level
                of -O2 to add additional call and block count
                profiling information to an executable.

                Default: -qnoshowpdf

         -qsmallstack | -qnosmallstack
                Reduces the size of the stack frame. This option is
                only valid when used together with IPA (-qipa, -O4,
                -O5 compiler options).

                Default: -qnosmallstack

         -qsmp[=<suboptions_list>] | -qnosmp
                Enables parallelization of program code.
                <suboptions_list> is a colon-separated list of one
                or more of the following suboptions:

                auto | noauto
                     Enables automatic parallelization and
                     optimization. If noauto is specified,
                     automatic parallelization of program code is
                     disabled; only program code explicitly
                     parallelized with OpenMP directives is
                     optimized.
                     Default: auto
                nested_par | nonested_par
                     If nested_par is specified, prescriptive
                     nested parallel constructs are parallelized by
                     the compiler.
                     Default: nonested_par
                omp | noomp
                     Enables strict OpenMP compliance. Only OpenMP
                     parallelization pragmas are recognized.
                     Default: noomp
                opt | noopt
                     Enables automatic parallelization but disables
                     optimization of parallelized program code. If
                     noopt is specified, optimization of
                     parallelized program code is disabled.
                     Default: opt
                rec_locks | norec_locks
                     Specifies whether to use recursive locks.
                     Default: norec_locks
                schedule=<type>
                     Specifies what kinds of scheduling algorithms
                     and chunking are used for loops to which no
                     other scheduling algorithm has been explicitly
                     assigned in the source code. <type> can be:
                       o affinity[=<num>]
                       o dynamic[=<num>]
                       o guided[=<num>]
                       o runtime
                       o static[=<num>],
                     where <num> is the number of loop iterations.
                     Default: schedule=runtime
                stackcheck | nostackcheck
                     Causes the compiler to check for stack
                     overflow by slave threads at run time, and
                     issue a warning if the remaining stack size is
                     less than the number of bytes specified by the
                     stackcheck option of the XLSMPOPTS environment
                     variable. This suboption is intended for
                     debugging purposes, and only takes effect when
                     XLSMPOPTS=stackcheck is also set.
                     Default: nostackcheck
                threshold[=<num>]
                     When -qsmp=auto is in effect, controls the
                     amount of automatic loop parallelization that
                     occurs. The value of <num> represents the
                     lower limit allowed for parallelization of a
                     loop, based on the level of "work" present in
                     a loop.
                     Default:
                       <num> must be a positive integer of 0 or
                       greater. If you specify threshold with no
                       suboption, the program uses a default value
                       of 100.

                Specifying -qsmp without suboptions is equivalent
                to
                -qsmp=auto:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100
                or
                -qsmp=opt:explicit:noomp:norec_locks:nonested_par:schedule=runtime:nostackcheck:threshold=100.

                Default: -qnosmp

         -qspeculateabsolutes | -qnospeculateabsolutes
                Works with the -qtocmerge -bl:file for non-IPA
                links and with the -bl:file for IPA links to
                disable speculation at absolute addresses.
                The bl:file is necessary for the compiler to know
                which addresses are absolutes.

                Default: -qspeculateabsolutes

         -qstrict | -qnostrict
                Turns off aggressive optimizations which have the
                potential to alter the semantics of your program.
                -qstrict sets -qfloat=nofltint:norsqrt. -qnostrict
                sets -qfloat=rsqrt. This option is only valid with
                -O2 or higher optimization levels.

                Default:
                     o -qnostrict at -O3 or higher.
                     o -qstrict otherwise.

         -qstrict_induction | -qnostrict_induction
                Turns off loop induction variable optimizations
                that have the potential to alter the semantics of
                your program.

                Default:
                     o -qnostrict_induction at -O2 or higher.
                     o -qstrict_induction otherwise.

         -qtocmerge | -qnotocmerge
                Enables TOC merging to reduce TOC pointer loads and
                improves the scheduling of external loads. Reads
                from the file specified in -bImportfile linker
                option and merges the address information to access
                ranges of external addresses using a single table
                of contents entry.

                Default: -qnotocmerge

         -qtune=<suboption>
                Specifies the architecture system for which the
                executable program is optimized.
                <suboption> must be one of the following:

                403
                     Generates object code optimized for all the
                     PowerPC 403 processors.
                604
                     Generates object code optimized for all the
                     PowerPC 604 processors.
                auto
                     Generates object code optimized for the
                     hardware platform on which the program is
                     compiled.
                balanced
                     Optimizations are tuned across a selected
                     range of recent hardware.
                ppc970
                     Generates instructions specific to PowerPC 970
                     hardware platforms.
                pwr3
                     Generates object code optimized for the POWER3
                     hardware platforms.
                pwr4
                     Generates object code optimized for the POWER4
                     hardware platforms.
                pwr5
                     Generates object code optimized for the POWER5
                     hardware platforms.
                pwr6
                     Generates object code optimized for the POWER6
                     hardware platforms.
                rs64a
                     Generates object code optimized for the RS64I
                     processor.
                rs64b
                     Generates object code optimized for the RS64II
                     processor.
                rs64c
                     Generates object code optimized for the
                     RS64III processor.

                Default:
                     -qtune=balanced when the default -qarch
                     setting is in effect. Otherwise, the default
                     depends on the effective -qarch setting.

         -qunroll[=<suboption>] | -qnounroll
                Unrolls inner loops in the program. This can help
                improve program performance.  The suboptions are:

                auto
                     Instructs the compiler to perform basic loop
                     unrolling.
                yes
                     Instructs the compiler to search for more
                     opportunities for loop unrolling than that
                     performed with auto. In general, this
                     suboption is more likely to increase compile
                     time or program size than auto processing, but
                     it may also improve your application's
                     performance.
                no
                     Instructs the compiler to not unroll loops.

                Default: -qunroll=auto

                If -qunroll is specified with no suboptions, the
                compiler assumes -qunroll=yes. -qnounroll is
                equivalent to -qunroll=no.

         -qunwind | -qnounwind
                Informs the compiler that the stack can be unwound
                while a routine in the compilation is active.
                Specifying -qnounwind can improve the optimization
                of non-volatile register saves and restores.

                Default: -qunwind

  Linking options
         -b{dynamic|shared|static}
                Controls how shared objects are processed by the
                linkage editor. The suboptions are:

                dynamic, shared
                     Causes the linker to process subsequent shared
                     objects in dynamic mode. In dynamic mode,
                     shared objects are not statically included in
                     the output file. Instead, the shared objects
                     are listed in the loader section of the output
                     file.
                     -bdynamic and -bshared are synonymous.
                static
                     Causes the linker to process subsequent shared
                     objects in static mode. In static mode, shared
                     objects are statically linked in the output
                     file.

                Default: -bshared

         -bmaxdata:<bytes>
                Specifies the maximum amount of space to reserve
                for the program data segment for programs where the
                size of these regions is a constraint. Combined
                data space is slightly less than 256MB, or lower,
                depending on the limits for the user ID.

                Default: -bmaxdata:0

         -brtl  Controls runtime linking for the output file.

         -qcrt | -qnocrt
                Instructs the linker to use the standard system
                startup files at link time.

                Default: -qcrt

         -e <name>
                Sets the entry name for a shared executable and is
                only used together with -qmkshrobj.

         -f<file_name>
                Names a file to store a list of object files for
                the compiler to pass to the linker. The <file_name>
                file should contain only the names of object files.
                There should be one object file per line.

         -L<dir>
                Searches the path directory for library files
                specified by the -l<key> option.

                Default:
                     The default is to search only the standard
                     directories.

         -l<key>
                Searches the file lib<key>.so and then lib<key>.a
                for dynamic linking, or only lib<key>.a for static
                linking.

                Default:
                     The default is to search only some of the
                     compiler runtime libraries.

         -qlib | -qnolib
                Specifies whether the compiler should use the
                standard system libraries at link time. -qnolib is
                similar to the gcc option nostdlib; the driver will
                not pass the standard system startup files or
                libraries when linking.

                Default: -qlib

         -qtwolink | -qnotwolink
                (C++) Links twice in order to minimize the number
                of static constructors included from libraries and
                object files.

                Default: -qnotwolink

         -Z<prefix>
                This linker option specifies a prefix for the
                library search path. This is useful when developing
                a new version of a library.

  Portability and migration options
         -qalign=<suboption>
                Specifies what aggregate alignment rules the
                compiler uses for file compilation, where the
                alignment suboptions are:

                bit_packed
                     The compiler uses the bit_packed alignment
                     rules.
                full
                     The compiler uses the RISC System/6000
                     alignment rules. This is the same as power.
                mac68k
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the twobyte
                     suboption.
                natural
                     The compiler maps structure members to their
                     natural boundaries.
                packed
                     The compiler uses the packed alignment rules.
                power
                     The compiler uses the RISC System/6000
                     alignment rules.
                twobyte
                     The compiler uses the Macintosh alignment
                     rules. This suboption is valid only for 32-bit
                     compilations. It is the same as the mac68k
                     suboption.

                Default: -qalign=full

         -qalignrulefor=power=[no]typedefrespectsrule
                (C++) When used with -qalign=power, determines
                whether a 4-byte alignment ceiling is applied to
                non-first members of structures that are of type
                typedef to array of element type that exceeds the
                alignment ceiling.

                typedefrespectsrule | notypedefrespectsrule
                     When typedefrespectsrule is in effect, the
                     member follows the normal alignment rules for
                     -qalign=power. This suboption provides
                     compatibility with code compiled with
                     -qalign=power with XL C++ V6.0 and earlier.
                     When notypedefrespectsrule is in effect, a
                     member that exceeds the alignment ceiling of 4
                     bytes is aligned on 4-byte boundaries. This
                     suboption provides compatibility with code
                     compiled with -qalign=power with XL C++ V7.0
                     and V8.0.

                Default: -qalignrulefor=power=typedefrespectsrule

         -qgenproto[=parmnames] | -qnogenproto
                (C) Generates ANSI prototypes from K&R function
                definitions and displays them on standard output.
                Specifying -qgenproto without '=parmnames' will
                cause prototypes to be generated without parameter
                names.

                Default: -qnogenproto

         -qnamemangling=<scheme>
                (C++) Chooses the name mangling scheme for external
                symbol names generated from C++ source code. The
                <scheme> can be:

                ansi
                     Fully supports the most recent language
                     features of Standard C++.
                v9
                     Compatible with XL C++ V9.0.
                v8
                     Compatible with XL C++ V8.0.
                v7
                     Compatible with XL C++ V7.0.
                v6
                     Compatible with VisualAge C++ V6.0.
                v5
                     The scheme for VisualAge C++ V5.0.
                v4
                     The scheme for VisualAge C++ V4.0.
                v3
                     The scheme for VisualAge C++ releases before
                     V4.0.
                compat
                     Same as v3.

                Default: -qnamemangling=ansi

         -qobjmodel={classic|ibm}
                (C++) Specifies the object model.

                classic
                     This object model is compatible with version
                     3.6 of the IBM C and C++ compilers.
                ibm
                     Uses the object model introduced with version
                     5.0 of VisualAge C++ for AIX. Objects compiled
                     with this object model will use less memory
                     and have better performance for deep
                     inheritance with virtual bases.

                Default: -qobjmodel=classic

         -qoldpassbyvalue | -qnooldpassbyvalue
                (C++) Specifies how classes containing const or
                reference members are passed in function arguments.
                All classes in the compilation unit are affected by
                this option. When -qoldpassbyvalue is specified,
                the compiler mimics the IBM C/C++ compilers v3.6
                compiler in that when a class containing a const or
                reference member is passed as a function argument,
                it is not passed by value. All such classes in the
                compilation unit are affected.

                Default: -qnooldpassbyvalue

         -qupconv | -qnoupconv
                (C) Preserves the unsigned specification when
                performing integral promotions.

                Default:
                     o -qupconv when -qlanglvl={extended|classic}.
                     o -qnoupconv otherwise.

         -qvecnvol | -qnovecnvol
                Specifies whether to use volatile or non-volatile
                vector registers. Volatile vector registers are
                registers whose value is not preserved across
                function calls or in the context of save, jump or
                switch system library functions. If -qnoenablevmx
                is enabled, this option is ignored.

                Default: -qnovecnvol

  Compiler customization options
         -qasm_as=<asm_path> [<flags_list>]
                Specifies the path and flags used to invoke the
                assembler in order to handle assembler code in an
                asm statement. <asm_path> is the full path to the
                assembler to be used, and <flags_list> is a series
                of one or more flags (and their arguments),
                separated by spaces. Single quotes (or double
                quotes) are required around the string of arguments
                if any spaces exist.

         -B[<prefix>]
                Determines substitute path names for programs used
                during compilation, such as the compiler,
                assembler, linkage editor, and preprocessor, where
                <prefix> can be any program name recognized by the
                -t compiler option. The optional <prefix> defines
                part of a path name to the new programs. The -t
                parameter, <program>, specifies the program to
                which the <prefix> is to be appended. When
                specifying <prefix>, there must be a slash (/)
                after the folder name.

         -qc_stdinc=<paths_list>
                (C) Changes the standard search location for the XL
                C headers. <paths_list> is a colon-separated list
                of paths to search.

         -qcpp_stdinc=<paths_list>
                (C++) Specifies the standard search directories for
                the XL C++ headers, where <paths_list> is a colon-
                separated list of paths.

         -F[<config_file>][:<stanza>]
                Names an alternative configuration file (.cfg) for
                the compiler. <config_file> is the name of a
                compiler configuration file. <stanza> is the name
                of the command used to invoke the compiler. This
                directs the compiler to use the entries under
                <stanza> in the <config_file> to set up the
                compiler environment. At least one of the arguments
                must be supplied.

         -qpath=<program>:<path>
                Constructs alternate program names for compiler
                components. The program and directory path
                specified are used in place of the regular program.
                <program> can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -qspill=<size>
                Specifies the size of the register allocation spill
                area in bytes.

                Default: -qspill=512

         -t<programs_list>
                Applies the prefix from the -B option to the
                specified programs in <programs_list>.
                <programs_list> is a chain (i.e: -tbcI) of one or
                more of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = C++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = Linkage helper (C++ only)
                p = Preprocessor

         -W<program>,<options_list>
                Gives the specified option(s) to the compiler
                program, <program>. <options_list> is a comma-
                separated list of one or more options. <program>
                can be one of the following:

                a = Assembler
                b = Low-level optimizer
                c = Compiler front end
                C = C++ compiler front end
                d = Disassembler
                E = CreateExportList utility
                f = c++filt utility
                I = High-level optimizer - compile step
                L = High-level optimizer - link step
                l = Linker
                m = linkage helper (C++ only)
                p = Preprocessor


  SEE ALSO
         gxlc(1), gxlc++(1), c++filt(1), CreateExportList(1),
         linkxlC(1), makeC++SharedLib(1), vacndi(1), vacppndi(1),
         showpdf(1), mergepdf(1), resetpdf(1), cleanpdf(1).

         For more information, refer to the following Web sites:
         http://www.ibm.com/software/awdtools/xlcpp/library/
         http://www.ibm.com/software/awdtools/xlcpp/support/


  COPYRIGHT
         Licensed Materials - Property of IBM.

         IBM XL C/C++ Enterprise Edition for AIX, V9.0.

         5724-S71

         Copyright IBM Corp. 1991, 2007. All Rights Reserved.

         AIX, IBM, POWER3, POWER4, POWER5, POWER5+, POWER6,
         PowerPC, PowerPC 604 and SAA are trademarks or registered
         trademarks of International Business Machines Corporation
         in the United States, other countries, or both.

         Windows is a trademarks of Microsoft Corporation in the
         United States, other countries, or both.

         US Government Users Restricted Rights - Use, duplication
         or disclosure restricted by GSA ADP Schedule Contract with
         IBM Corp.






















































rm /ptmp/ddvento/xlcW0qxaiia
rm /ptmp/ddvento/xlcW1qxaiib
rm /ptmp/ddvento/xlcW2qxaiic
configure:23238: $? = 249
configure:23241: checking whether we are using the GNU C++ compiler
configure:23294: result: no
configure:23303: checking whether xlC accepts -g
configure:23441: result: yes
configure:23466: checking dependency style of xlC
configure:23557: result: aix
configure:23580: checking how to run the C++ preprocessor
configure:23694: result: xlC -E
configure:23723: xlC -E -I/contrib/gmp-4.3.1//include conftest.cpp
configure:23730: $? = 0
configure:23761: xlC -E -I/contrib/gmp-4.3.1//include conftest.cpp
"conftest.cpp", line 89.10: 1540-0836 (S) The #include file <ac_nonexistent.h> is not found.
configure:23768: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:23980: checking for objdir
configure:23995: result: .libs
configure:24346: checking for xlc option to produce PIC
configure:24618: result:  -DPIC
configure:24630: checking if xlc PIC flag  -DPIC works
configure:24648: xlc -c  -g -O2  -I/contrib/gmp-4.3.1//include  -DPIC -DPIC conftest.c >&5
configure:24652: $? = 0
configure:24665: result: yes
configure:24689: checking if xlc static flag -bnso -bI:/lib/syscalls.exp works
configure:24717: result: no
configure:24732: checking if xlc supports -c -o file.o
configure:24753: xlc -c  -g -O2  -I/contrib/gmp-4.3.1//include -o out/conftest2.o conftest.c >&5
configure:24757: $? = 0
configure:24779: result: yes
configure:24787: checking if xlc supports -c -o file.o
configure:24834: result: yes
configure:24867: checking whether the xlc linker (/usr/bin/ld) supports shared libraries
configure:25401: xlc -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.c  >&5
configure:25408: $? = 0
configure:25941: result: yes
configure:26180: checking dynamic linker characteristics
configure:26863: result: aix5.3.0.0 ld.so
configure:26965: checking how to hardcode library paths into programs
configure:26990: result: immediate
configure:27113: checking for shl_load
configure:27169: xlc -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.c  >&5
ld: 0711-317 ERROR: Undefined symbol: .shl_load
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
configure:27176: $? = 8
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| /* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
| #define shl_load innocuous_shl_load
| 
| /* System header to define __stub macros and hopefully few prototypes,
|     which can conflict with char shl_load (); below.
|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|     <limits.h> exists even on freestanding compilers.  */
| 
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| 
| #undef shl_load
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char shl_load ();
| /* The GNU C library defines this for functions which it implements
|     to always fail with ENOSYS.  Some functions are actually named
|     something starting with __ and the normal name is an alias.  */
| #if defined __stub_shl_load || defined __stub___shl_load
| choke me
| #endif
| 
| int
| main ()
| {
| return shl_load ();
|   ;
|   return 0;
| }
configure:27196: result: no
configure:27201: checking for shl_load in -ldld
configure:27236: xlc -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.c -ldld   >&5
ld: 0706-006 Cannot find or open library file: -l dld
	ld:open(): No such file or directory
configure:27243: $? = 255
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char shl_load ();
| int
| main ()
| {
| return shl_load ();
|   ;
|   return 0;
| }
configure:27264: result: no
configure:27269: checking for dlopen
configure:27325: xlc -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.c  >&5
configure:27332: $? = 0
configure:27352: result: yes
configure:27597: checking whether a program can dlopen itself
configure:27667: xlc -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include -DHAVE_DLFCN_H  -Wl,-bexpall conftest.c   >&5
configure:27670: $? = 0
configure:27688: result: yes
configure:27693: checking whether a statically linked program can dlopen itself
configure:27763: xlc -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include -DHAVE_DLFCN_H  -Wl,-bexpall  conftest.c   >&5
configure:27766: $? = 0
configure:27784: result: yes
configure:27823: checking whether stripping libraries is possible
configure:27845: result: no
configure:27863: checking if libtool supports shared libraries
configure:27865: result: yes
configure:27868: checking whether to build shared libraries
configure:27889: result: yes
configure:27892: checking whether to build static libraries
configure:27896: result: no
configure:28192: checking whether the xlC linker (/usr/bin/ld) supports shared libraries
configure:28386: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.cpp  >&5
configure:28393: $? = 0
configure:29167: result: yes
configure:29195: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:29198: $? = 0
configure:29380: checking for xlC option to produce PIC
configure:29697: result:  -DPIC
configure:29706: checking if xlC PIC flag  -DPIC works
configure:29724: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include  -DPIC -DPIC conftest.cpp >&5
configure:29728: $? = 0
configure:29741: result: yes
configure:29762: checking if xlC static flag -bnso -bI:/lib/syscalls.exp works
configure:29790: result: no
configure:29802: checking if xlC supports -c -o file.o
configure:29823: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include -o out/conftest2.o conftest.cpp >&5
configure:29827: $? = 0
configure:29849: result: yes
configure:29854: checking if xlC supports -c -o file.o
configure:29901: result: yes
configure:29931: checking whether the xlC linker (/usr/bin/ld) supports shared libraries
configure:29957: result: yes
configure:30094: checking dynamic linker characteristics
configure:30725: result: aix5.3.0.0 ld.so
configure:30776: checking how to hardcode library paths into programs
configure:30801: result: immediate
configure:30879: checking for md5sum
configure:30895: found /usr/bin/md5sum
configure:30906: result: md5sum
configure:30925: checking for the text md5sum command
configure:30933: result: md5sum -t
configure:30964: checking glpk.h usability
configure:30981: xlc -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.c >&5
"conftest.c", line 123.10: 1506-296 (S) #include file <glpk.h> not found.
configure:30988: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <glpk.h>
configure:31002: result: no
configure:31006: checking glpk.h presence
configure:31021: xlc -E -I/contrib/gmp-4.3.1//include conftest.c
"conftest.c", line 90.10: 1506-296 (S) #include file <glpk.h> not found.
configure:31028: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <glpk.h>
configure:31042: result: no
configure:31075: checking for glpk.h
configure:31084: result: no
configure:30964: checking glpk/glpk.h usability
configure:30981: xlc -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.c >&5
"conftest.c", line 123.10: 1506-296 (S) #include file <glpk/glpk.h> not found.
configure:30988: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <glpk/glpk.h>
configure:31002: result: no
configure:31006: checking glpk/glpk.h presence
configure:31021: xlc -E -I/contrib/gmp-4.3.1//include conftest.c
"conftest.c", line 90.10: 1506-296 (S) #include file <glpk/glpk.h> not found.
configure:31028: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <glpk/glpk.h>
configure:31042: result: no
configure:31075: checking for glpk/glpk.h
configure:31084: result: no
configure:31418: checking whether RLIMIT_DATA is declared
configure:31452: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:31459: $? = 0
configure:31474: result: yes
configure:31490: checking whether RLIMIT_RSS is declared
configure:31524: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:31531: $? = 0
configure:31546: result: yes
configure:31562: checking whether RLIMIT_VMEM is declared
configure:31596: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
"conftest.cpp", line 102.10: 1540-0274 (S) The name lookup for "RLIMIT_VMEM" did not find a declaration.
configure:31603: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_DECL_RLIMIT_DATA 1
| #define HAVE_DECL_RLIMIT_RSS 1
| /* end confdefs.h.  */
| 
| #ifdef HAVE_SYS_RESOURCE_H
| # include <sys/resource.h>
| #endif
| 
| 
| int
| main ()
| {
| #ifndef RLIMIT_VMEM
|   (void) RLIMIT_VMEM;
| #endif
| 
|   ;
|   return 0;
| }
configure:31618: result: no
configure:31634: checking whether RLIMIT_AS is declared
configure:31668: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:31675: $? = 0
configure:31690: result: yes
configure:31709: checking whether getrusage is declared
configure:31746: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:31753: $? = 0
configure:31768: result: yes
configure:31788: checking for timeval
configure:31816: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:31823: $? = 0
configure:31850: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
"conftest.cpp", line 131.22: 1540-0063 (S) The text ")" is unexpected.
configure:31857: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_DECL_RLIMIT_DATA 1
| #define HAVE_DECL_RLIMIT_RSS 1
| #define HAVE_DECL_RLIMIT_VMEM 0
| #define HAVE_DECL_RLIMIT_AS 1
| #define HAVE_DECL_GETRUSAGE 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| int
| main ()
| {
| if (sizeof ((timeval)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:31880: result: yes
configure:31891: checking for siginfo_t
configure:31922: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
configure:31929: $? = 0
configure:31959: xlC -c  -g -O2  -I/contrib/gmp-4.3.1//include conftest.cpp >&5
"conftest.cpp", line 103.24: 1540-0063 (S) The text ")" is unexpected.
configure:31966: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_DECL_RLIMIT_DATA 1
| #define HAVE_DECL_RLIMIT_RSS 1
| #define HAVE_DECL_RLIMIT_VMEM 0
| #define HAVE_DECL_RLIMIT_AS 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_TIMEVAL 1
| /* end confdefs.h.  */
| 
| #include <signal.h>
| 
| 
| int
| main ()
| {
| if (sizeof ((siginfo_t)))
| 	  return 0;
|   ;
|   return 0;
| }
configure:31989: result: yes
configure:32013: checking whether we can limit memory in C++ using setrlimit()
configure:32099: xlC -o conftest  -g -O2  -I/contrib/gmp-4.3.1//include  conftest.cpp  >&5
configure:32103: $? = 0
configure:32109: ./conftest
configure:32113: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME "the Parma Polyhedra Library"
| #define PACKAGE_TARNAME "ppl"
| #define PACKAGE_VERSION "0.10.2"
| #define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
| #define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
| #define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
| #define PPL_NDEBUG 1
| #define PPL_FPMATH_MAY_USE_387 1
| #define PPL_FPMATH_MAY_USE_SSE 1
| #define PPL_COEFFICIENT_TYPE mpz_class
| #define PPL_COEFFICIENT_BITS 0
| #define PPL_GMP_INTEGERS 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define WORDS_BIGENDIAN 1
| #define HAVE_TYPEOF 1
| #define typeof __typeof__
| #define SIZEOF_CHAR 1
| #define SIZEOF_SHORT 2
| #define SIZEOF_INT 4
| #define SIZEOF_LONG 8
| #define SIZEOF_LONG_LONG 8
| #define SIZEOF_SIZE_T 8
| #define SIZEOF_FLOAT 4
| #define SIZEOF_DOUBLE 8
| #define SIZEOF_LONG_DOUBLE 8
| #define SIZEOF_INTP 8
| #define SIZEOF_FP 8
| #define HAVE_FENV_H 1
| #define PPL_CAN_CONTROL_FPU 1
| #define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
| #define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
| #define PPL_CXX_FLOAT_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_FLOAT 0
| #define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_DOUBLE 0
| #define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
| #define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
| #define PPL_SUPPORTED_LONG_DOUBLE 0
| #define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
| #define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
| #define PPL_CXX_HAS_REMAINDER_BUG 1
| #define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
| #define HAVE_FENV_H 1
| #define HAVE_SIGNAL_H 1
| #define HAVE_STRING_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DECL_FFS 1
| #define HAVE_DECL_GETENV 1
| #define HAVE_DECL_STRTOF 1
| #define HAVE_DECL_STRTOD 1
| #define HAVE_DECL_STRTOLD 1
| #define HAVE_DECL_STRTOLL 1
| #define HAVE_DECL_STRTOULL 1
| #define HAVE_DECL_FMA 1
| #define HAVE_DECL_FMAF 1
| #define HAVE_DECL_FMAL 1
| #define HAVE_DECL_RINTF 1
| #define HAVE_DECL_RINTL 1
| #define HAVE_INT_FAST16_T 1
| #define HAVE_INT_FAST32_T 1
| #define HAVE_INT_FAST64_T 1
| #define HAVE_UINT_FAST16_T 1
| #define HAVE_UINT_FAST32_T 1
| #define HAVE_UINT_FAST64_T 1
| #define SIZEOF_MP_LIMB_T 8
| #define PPL_GMP_SUPPORTS_EXCEPTIONS 1
| #define HAVE___MPZ_STRUCT__MP_ALLOC 1
| #define HAVE___MPZ_STRUCT__MP_SIZE 1
| #define HAVE___MPZ_STRUCT__MP_D 1
| #define HAVE_SETITIMER 1
| #define PPL_WATCHDOG_LIBRARY_ENABLED 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_DECL_RLIMIT_DATA 1
| #define HAVE_DECL_RLIMIT_RSS 1
| #define HAVE_DECL_RLIMIT_VMEM 0
| #define HAVE_DECL_RLIMIT_AS 1
| #define HAVE_DECL_GETRUSAGE 1
| #define HAVE_TIMEVAL 1
| #define HAVE_SIGINFO_T 1
| /* end confdefs.h.  */
| 
| #include <stdexcept>
| 
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| 
| #ifdef HAVE_SYS_TIME_H
| # include <sys/time.h>
| #endif
| 
| #ifdef HAVE_SYS_RESOURCE_H
| // This should be included after <time.h> and <sys/time.h> so as to make
| // sure we have the definitions for, e.g., ru_utime.
| # include <sys/resource.h>
| #endif
| 
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| 
| #define LIMIT(WHAT)   do {									    if (getrlimit(WHAT, &t) != 0) 					      return false;                                                         t.rlim_cur = bytes;							    if (setrlimit(WHAT, &t) != 0)					      return false;                                                       } while (0)
| 
| bool
| limit_memory(unsigned long bytes) {
|   struct rlimit t;
| #if HAVE_DECL_RLIMIT_DATA
|   // Limit heap size.
|   LIMIT(RLIMIT_DATA);
| #endif
| #if HAVE_DECL_RLIMIT_RSS
|   // Limit resident set size.
|   LIMIT(RLIMIT_RSS);
| #endif
| #if HAVE_DECL_RLIMIT_VMEM
|   // Limit mapped memory (brk + mmap).
|   LIMIT(RLIMIT_VMEM);
| #endif
| #if HAVE_DECL_RLIMIT_AS
|   // Limit virtual memory.
|   LIMIT(RLIMIT_AS);
| #endif
|   return true;
| }
| 
| int
| main() try {
|   if (!limit_memory(10000))
|     return 1;
|   (void) new char[20000];
|   return 1;
|  }
|  catch (std::bad_alloc) {
|    return 0;
|  }
|  catch (...) {
|    return 1;
|  }
| 
configure:32124: result: no
configure:32652: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by the Parma Polyhedra Library config.status 0.10.2, which was
generated by GNU Autoconf 2.63.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on be1005en.ucar.edu

config.status:1353: creating Makefile
config.status:1353: creating ppl.lsm
config.status:1353: creating src/Makefile
config.status:1353: creating src/version.hh
config.status:1353: creating src/ppl-config.cc
config.status:1353: creating tests/Makefile
config.status:1353: creating tests/BD_Shape/Makefile
config.status:1353: creating tests/Box/Makefile
config.status:1353: creating tests/Grid/Makefile
config.status:1353: creating tests/MIP_Problem/Makefile
config.status:1353: creating tests/Octagonal_Shape/Makefile
config.status:1353: creating tests/Partially_Reduced_Product/Makefile
config.status:1353: creating tests/Polyhedron/Makefile
config.status:1353: creating tests/Powerset/Makefile
config.status:1353: creating utils/Makefile
config.status:1353: creating m4/Makefile
config.status:1353: creating demos/Makefile
config.status:1353: creating demos/ppl_lcdd/Makefile
config.status:1353: creating demos/ppl_lcdd/examples/Makefile
config.status:1353: creating demos/ppl_lpsol/Makefile
config.status:1353: creating demos/ppl_lpsol/examples/Makefile
config.status:1353: creating doc/Makefile
config.status:1353: creating doc/user.doxyconf-latex
config.status:1353: creating doc/devref.doxyconf-latex
config.status:1353: creating doc/user.doxyconf-html
config.status:1353: creating doc/devref.doxyconf-html
config.status:1353: creating doc/user-language-interface.doxyconf
config.status:1353: creating doc/devref-language-interface.doxyconf
config.status:1353: creating interfaces/Makefile
config.status:1353: creating interfaces/C/Makefile
config.status:1353: creating interfaces/C/ppl_c_version.h
config.status:1353: creating interfaces/C/tests/Makefile
config.status:1353: creating interfaces/Java/Makefile
config.status:1353: creating interfaces/Java/jni/Makefile
config.status:1353: creating interfaces/Java/tests/Makefile
config.status:1353: creating interfaces/Java/parma_polyhedra_library/Makefile
config.status:1353: creating interfaces/OCaml/Makefile
config.status:1353: creating interfaces/OCaml/tests/Makefile
config.status:1353: creating interfaces/Prolog/Makefile
config.status:1353: creating interfaces/Prolog/Ciao/Makefile
config.status:1353: creating interfaces/Prolog/GNU/Makefile
config.status:1353: creating interfaces/Prolog/SICStus/Makefile
config.status:1353: creating interfaces/Prolog/SWI/Makefile
config.status:1353: creating interfaces/Prolog/XSB/Makefile
config.status:1353: creating interfaces/Prolog/YAP/Makefile
config.status:1353: creating interfaces/Prolog/tests/Makefile
config.status:1353: creating config.h
config.status:1627: executing depfiles commands
config.status:1627: executing libtool commands
configure:35242: === configuring in Watchdog (/ptmp/ddvento/install/ppl-0.10.2/Watchdog)
configure:35345: running /bin/sh ./configure --disable-option-checking '--prefix=/contrib/ppl-0.10.2'  '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC' --cache-file=/dev/null --srcdir=.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=powerpc-ibm-aix5.3.0.0
ac_cv_c_bigendian=yes
ac_cv_c_compiler_gnu=no
ac_cv_c_const=yes
ac_cv_c_inline=inline
ac_cv_c_typeof=__typeof__
ac_cv_can_control_fpu=1
ac_cv_cxx_compiler_gnu=no
ac_cv_cxx_has_remainder_bug=yes
ac_cv_env_CCC_set=''
ac_cv_env_CCC_value=''
ac_cv_env_CC_set=set
ac_cv_env_CC_value=xlc
ac_cv_env_CFLAGS_set=''
ac_cv_env_CFLAGS_value=''
ac_cv_env_CPPFLAGS_set=''
ac_cv_env_CPPFLAGS_value=''
ac_cv_env_CPP_set=''
ac_cv_env_CPP_value=''
ac_cv_env_CXXCPP_set=''
ac_cv_env_CXXCPP_value=''
ac_cv_env_CXXFLAGS_set=''
ac_cv_env_CXXFLAGS_value=''
ac_cv_env_CXX_set=set
ac_cv_env_CXX_value=xlC
ac_cv_env_LDFLAGS_set=''
ac_cv_env_LDFLAGS_value=''
ac_cv_env_LIBS_set=''
ac_cv_env_LIBS_value=''
ac_cv_env_M4_set=''
ac_cv_env_M4_value=''
ac_cv_env_build_alias_set=''
ac_cv_env_build_alias_value=''
ac_cv_env_host_alias_set=''
ac_cv_env_host_alias_value=''
ac_cv_env_target_alias_set=''
ac_cv_env_target_alias_value=''
ac_cv_func_dlopen=yes
ac_cv_func_setitimer=yes
ac_cv_func_shl_load=no
ac_cv_gmp_supports_exceptions=yes
ac_cv_have_decl_RLIMIT_AS=yes
ac_cv_have_decl_RLIMIT_DATA=yes
ac_cv_have_decl_RLIMIT_RSS=yes
ac_cv_have_decl_RLIMIT_VMEM=no
ac_cv_have_decl_ffs=yes
ac_cv_have_decl_fma=yes
ac_cv_have_decl_fmaf=yes
ac_cv_have_decl_fmal=yes
ac_cv_have_decl_getenv=yes
ac_cv_have_decl_getrusage=yes
ac_cv_have_decl_rintf=yes
ac_cv_have_decl_rintl=yes
ac_cv_have_decl_strtod=yes
ac_cv_have_decl_strtof=yes
ac_cv_have_decl_strtold=yes
ac_cv_have_decl_strtoll=yes
ac_cv_have_decl_strtoull=yes
ac_cv_have_gmp=yes
ac_cv_header_dlfcn_h=yes
ac_cv_header_fenv_h=yes
ac_cv_header_getopt_h=no
ac_cv_header_glpk_glpk_h=no
ac_cv_header_glpk_h=no
ac_cv_header_ieeefp_h=no
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_signal_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_resource_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_time_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=powerpc-ibm-aix5.3.0.0
ac_cv_javac_supports_enums=yes
ac_cv_lib_dld_shl_load=no
ac_cv_libgmp_cppflags=-I/contrib/gmp-4.3.1//include
ac_cv_libgmp_libs=/contrib/gmp-4.3.1//lib/libgmp.a
ac_cv_libgmp_ltlibs='-L/contrib/gmp-4.3.1//lib -lgmp'
ac_cv_libgmpxx_cppflags=''
ac_cv_libgmpxx_libs='/contrib/gmp-4.3.1//lib/libgmpxx.a /contrib/gmp-4.3.1//lib/libgmp.a'
ac_cv_libgmpxx_ltlibs='-L/contrib/gmp-4.3.1//lib -lgmpxx -L/contrib/gmp-4.3.1//lib -lgmp'
ac_cv_member___mpz_struct__mp_alloc=yes
ac_cv_member___mpz_struct__mp_d=yes
ac_cv_member___mpz_struct__mp_size=yes
ac_cv_objext=o
ac_cv_path_EGREP='/usr/local/bin//grep -E'
ac_cv_path_FGREP='/usr/local/bin//grep -F'
ac_cv_path_GREP=/usr/local/bin//grep
ac_cv_path_JAR=/usr/java5//bin/jar
ac_cv_path_JAVA=/usr/java5//bin/java
ac_cv_path_JAVAC=/usr/java5//bin/javac
ac_cv_path_JAVAH=/usr/java5//bin/javah
ac_cv_path_M4=/usr/local/bin//m4
ac_cv_path_PERL=/usr/bin/perl
ac_cv_path_SED=/usr/bin/sed
ac_cv_path_install='/usr/local/bin//install -c'
ac_cv_path_mkdir=/usr/local/bin//mkdir
ac_cv_prog_AWK=nawk
ac_cv_prog_CPP='xlc -E'
ac_cv_prog_CXXCPP='xlC -E'
ac_cv_prog_MD5SUM=md5sum
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=xlc
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c89=''
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_gnu_m4_debugfile=--debugfile
ac_cv_prog_java_works=yes
ac_cv_prog_make_make_set=yes
ac_cv_prog_text_md5sum='md5sum -t'
ac_cv_prog_uudecode=yes
ac_cv_prog_uudecode_base64=yes
ac_cv_sizeof_char=1
ac_cv_sizeof_double=8
ac_cv_sizeof_float=4
ac_cv_sizeof_fp=8
ac_cv_sizeof_int=4
ac_cv_sizeof_intp=8
ac_cv_sizeof_long=8
ac_cv_sizeof_long_double=8
ac_cv_sizeof_long_long=8
ac_cv_sizeof_mp_limb_t=8
ac_cv_sizeof_short=2
ac_cv_sizeof_size_t=8
ac_cv_type_int_fast16_t=yes
ac_cv_type_int_fast32_t=yes
ac_cv_type_int_fast64_t=yes
ac_cv_type_siginfo_t=yes
ac_cv_type_timeval=yes
ac_cv_type_uint_fast16_t=yes
ac_cv_type_uint_fast32_t=yes
ac_cv_type_uint_fast64_t=yes
acl_cv_hardcode_direct=yes
acl_cv_hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/vac/lib:/usr/lib:/lib                                            '
acl_cv_hardcode_libdir_separator=:
acl_cv_hardcode_minus_L=no
acl_cv_libext=a
acl_cv_libname_spec='lib$name'
acl_cv_library_names_spec='$libname$shrext'
acl_cv_path_LD=/usr/bin/ld
acl_cv_prog_gnu_ld=no
acl_cv_rpath=done
acl_cv_shlibext=so
acl_cv_wl=-Wl,
am_cv_CC_dependencies_compiler_type=aix
am_cv_CXX_dependencies_compiler_type=aix
am_cv_prog_tar_ustar=gnutar
lt_cv_deplibs_check_method=pass_all
lt_cv_dlopen=dlopen
lt_cv_dlopen_libs=''
lt_cv_dlopen_self=yes
lt_cv_dlopen_self_static=yes
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=''
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/usr/bin/ld
lt_cv_path_LDCXX=''
lt_cv_path_NM='/usr/bin/nm -B'
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_c_o_CXX=yes
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_pic_works_CXX=yes
lt_cv_prog_compiler_static_works=no
lt_cv_prog_compiler_static_works_CXX=no
lt_cv_prog_gnu_ld=no
lt_cv_prog_gnu_ldcxx=''
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[	 ]\([BCDT][BCDT]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\) $/  {\"\1\", (void *) 0},/p'\'' -e '\''s/^[BCDT]* \([^ ]*\) \([^ ]*\)$/  {"\2", (void *) \&\2},/p'\'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \([^ ]*\) $/  {\"\1\", (void *) 0},/p'\'' -e '\''s/^[BCDT]* \([^ ]*\) \(lib[^ ]*\)$/  {"\2", (void *) \&\2},/p'\'' -e '\''s/^[BCDT]* \([^ ]*\) \([^ ]*\)$/  {"lib\2", (void *) \&\2},/p'\'
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[BCDT]* .* \(.*\)$/extern char \1;/p'\'
lt_cv_sys_max_cmd_len=307200

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /ptmp/ddvento/install/ppl-0.10.2/missing --run aclocal-1.10'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='${SHELL} /ptmp/ddvento/install/ppl-0.10.2/missing --run tar'
AR='ar'
ASSERTIONS_ENABLED_FALSE=''
ASSERTIONS_ENABLED_TRUE='#'
AUTOCONF='${SHELL} /ptmp/ddvento/install/ppl-0.10.2/missing --run autoconf'
AUTOHEADER='${SHELL} /ptmp/ddvento/install/ppl-0.10.2/missing --run autoheader'
AUTOMAKE='${SHELL} /ptmp/ddvento/install/ppl-0.10.2/missing --run automake-1.10'
AWK='nawk'
BUILD_CIAO_PROLOG_INTERFACE_FALSE=''
BUILD_CIAO_PROLOG_INTERFACE_TRUE='#'
BUILD_CXX_INTERFACE_FALSE='#'
BUILD_CXX_INTERFACE_TRUE=''
BUILD_C_INTERFACE_FALSE='#'
BUILD_C_INTERFACE_TRUE=''
BUILD_GNU_PROLOG_INTERFACE_FALSE=''
BUILD_GNU_PROLOG_INTERFACE_TRUE='#'
BUILD_JAVA_INTERFACE_FALSE='#'
BUILD_JAVA_INTERFACE_TRUE=''
BUILD_OCAML_INTERFACE_FALSE=''
BUILD_OCAML_INTERFACE_TRUE='#'
BUILD_PPL_LCDD_FALSE='#'
BUILD_PPL_LCDD_TRUE=''
BUILD_PPL_LPSOL_FALSE='#'
BUILD_PPL_LPSOL_TRUE=''
BUILD_SICSTUS_PROLOG_INTERFACE_FALSE=''
BUILD_SICSTUS_PROLOG_INTERFACE_TRUE='#'
BUILD_SOME_PROLOG_INTERFACES_FALSE=''
BUILD_SOME_PROLOG_INTERFACES_TRUE='#'
BUILD_SWI_PROLOG_INTERFACE_FALSE=''
BUILD_SWI_PROLOG_INTERFACE_TRUE='#'
BUILD_WATCHDOG_LIBRARY_FALSE='#'
BUILD_WATCHDOG_LIBRARY_TRUE=''
BUILD_XSB_PROLOG_INTERFACE_FALSE=''
BUILD_XSB_PROLOG_INTERFACE_TRUE='#'
BUILD_YAP_PROLOG_INTERFACE_FALSE=''
BUILD_YAP_PROLOG_INTERFACE_TRUE='#'
CAN_CONTROL_FPU_FALSE='#'
CAN_CONTROL_FPU_TRUE=''
CC='xlc'
CCDEPMODE='depmode=aix'
CFLAGS=' -g -O2 '
CIAO_PROLOG=''
CIAO_PROLOG_INCLUDE_OPTIONS=''
CONFIGURE_OPTIONS=''
CPP='xlc -E'
CPPFLAGS='-I/contrib/gmp-4.3.1//include'
CXX='xlC'
CXXCPP='xlC -E'
CXXDEPMODE='depmode=aix'
CXXFLAGS=' -g -O2 '
CYGPATH_W='echo'
DEBUGGING_ENABLED_FALSE='#'
DEBUGGING_ENABLED_TRUE=''
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
DSYMUTIL=''
DUMPBIN=''
ECHO_C='\c'
ECHO_N=''
ECHO_T=''
EGREP='/usr/local/bin//grep -E'
ENABLE_SHARED_FALSE='#'
ENABLE_SHARED_TRUE=''
ENABLE_STATIC_FALSE=''
ENABLE_STATIC_TRUE='#'
EXEEXT=''
FGREP='/usr/local/bin//grep -F'
GCC_FALSE=''
GCC_TRUE='#'
GNU_PROLOG=''
GREP='/usr/local/bin//grep'
HAVE_GLPK_FALSE=''
HAVE_GLPK_TRUE='#'
HAVE_MD5SUM_FALSE='#'
HAVE_MD5SUM_TRUE=''
HAVE_OCAMLC_FALSE=''
HAVE_OCAMLC_TRUE='#'
HAVE_OCAMLOPT_FALSE=''
HAVE_OCAMLOPT_TRUE='#'
HAVE_PERL_FALSE='#'
HAVE_PERL_TRUE=''
HOST_CPU_X86_64_FALSE=''
HOST_CPU_X86_64_TRUE='#'
HOST_OS_CYGWIN_FALSE=''
HOST_OS_CYGWIN_TRUE='#'
HOST_OS_DARWIN_FALSE=''
HOST_OS_DARWIN_TRUE='#'
HOST_OS_MINGW_FALSE=''
HOST_OS_MINGW_TRUE='#'
HOST_OS_SOLARIS_FALSE=''
HOST_OS_SOLARIS_TRUE='#'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
ISODATE='2009-09-08'
JAR='/usr/java5//bin/jar'
JAVA='/usr/java5//bin/java'
JAVAC='/usr/java5//bin/javac'
JAVAH='/usr/java5//bin/javah'
JNIFLAGS='-I/usr/java5//include -I/usr/java5//include/aix'
LD='/usr/bin/ld'
LDFLAGS=''
LIBEXT='a'
LIBGMP='/contrib/gmp-4.3.1//lib/libgmp.a'
LIBGMPXX='/contrib/gmp-4.3.1//lib/libgmpxx.a /contrib/gmp-4.3.1//lib/libgmp.a'
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBGMP='-L/contrib/gmp-4.3.1//lib -lgmp'
LTLIBGMPXX='-L/contrib/gmp-4.3.1//lib -lgmpxx -L/contrib/gmp-4.3.1//lib -lgmp'
LTLIBOBJS=''
M4='/usr/local/bin//m4'
M4_DEBUGFILE='--debugfile'
MAKEINFO='${SHELL} /ptmp/ddvento/install/ppl-0.10.2/missing --run makeinfo'
MD5SUM='md5sum'
MKDIR_P='/usr/local/bin//mkdir -p'
NM='/usr/bin/nm -B'
NMEDIT=''
NO_UNDEFINED_FALSE=''
NO_UNDEFINED_TRUE='#'
OBJDUMP='false'
OBJEXT='o'
OCAMLC=''
OCAMLOPT=''
OTOOL64=''
OTOOL=''
PACKAGE='ppl'
PACKAGE_BUGREPORT='ppl-devel@cs.unipr.it'
PACKAGE_NAME='the Parma Polyhedra Library'
PACKAGE_STRING='the Parma Polyhedra Library 0.10.2'
PACKAGE_TARNAME='ppl'
PACKAGE_VERSION='0.10.2'
PATH_SEPARATOR=':'
PERL='/usr/bin/perl'
PPL_VERSION_BETA='0'
PPL_VERSION_MAJOR='0'
PPL_VERSION_MINOR='10'
PPL_VERSION_REVISION='2'
RANLIB='ranlib'
SED='/usr/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
SHREXT='.so'
SICSTUS_PROLOG_INCLUDE_OPTIONS=''
STRIP='strip'
SUPPORTED_DOUBLE_FALSE=''
SUPPORTED_DOUBLE_TRUE='#'
SUPPORTED_FLOAT_FALSE=''
SUPPORTED_FLOAT_TRUE='#'
SUPPORTED_LONG_DOUBLE_FALSE=''
SUPPORTED_LONG_DOUBLE_TRUE='#'
SWI_PROLOG=''
SWI_PROLOG_INCLUDE_OPTIONS=''
SWI_PROLOG_LD_OPTIONS=''
TEXT_MD5SUM='md5sum -t'
THOROUGH_MAKE_CHECK_FALSE=''
THOROUGH_MAKE_CHECK_TRUE='#'
USE_CHECKED_INTEGERS_FALSE=''
USE_CHECKED_INTEGERS_TRUE='#'
USE_GMP_INTEGERS_FALSE='#'
USE_GMP_INTEGERS_TRUE=''
USE_INT16_FALSE=''
USE_INT16_TRUE='#'
USE_INT32_FALSE=''
USE_INT32_TRUE='#'
USE_INT64_FALSE=''
USE_INT64_TRUE='#'
USE_INT8_FALSE=''
USE_INT8_TRUE='#'
USE_NATIVE_INTEGERS_FALSE=''
USE_NATIVE_INTEGERS_TRUE='#'
USE_PRECOMPILED_HEADERS_FALSE=''
USE_PRECOMPILED_HEADERS_TRUE='#'
VALGRIND=''
VALGRIND_TESTS_ENABLED_FALSE=''
VALGRIND_TESTS_ENABLED_TRUE='#'
VERSION='0.10.2'
XSB_PROLOG_INCLUDE_OPTIONS=''
YAP_PROLOG=''
ac_ct_CC='xlc'
ac_ct_CXX=''
ac_ct_DUMPBIN=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE='#'
am__fastdepCXX_FALSE=''
am__fastdepCXX_TRUE='#'
am__include='include'
am__isrc=''
am__leading_dot='.'
am__quote=''
am__tar='gtar --format=ustar -chf - "$$tardir"'
am__untar='gtar -xf -'
bindir='${exec_prefix}/bin'
build='powerpc-ibm-aix5.3.0.0'
build_alias=''
build_cpu='powerpc'
build_os='aix5.3.0.0'
build_vendor='ibm'
ciao_prolog=''
coefficient_mnemonic='mpz'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
debug_flag='-DNDEBUG=1'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
extra_includes=''
extra_libraries=' -lm -L/contrib/gmp-4.3.1//lib -lgmpxx -L/contrib/gmp-4.3.1//lib -lgmp'
host='powerpc-ibm-aix5.3.0.0'
host_alias=''
host_cpu='powerpc'
host_os='aix5.3.0.0'
host_vendor='ibm'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='$(SHELL) /ptmp/ddvento/install/ppl-0.10.2/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
lt_ECHO='/usr/local/bin//echo'
mandir='${datarootdir}/man'
mkdir_p='/usr/local/bin//mkdir -p'
mlgmp_dir='+gmp'
ocamlc_root=''
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/contrib/ppl-0.10.2'
program_transform_name='s,x,x,'
psdir='${docdir}'
required_instantiations='Polyhedron@Grid@Rational_Box@BD_Shape<mpz_class>@BD_Shape<mpq_class>@Octagonal_Shape<mpz_class>@Octagonal_Shape<mpq_class>@Constraints_Product<C_Polyhedron,Grid>@Pointset_Powerset<C_Polyhedron>@Pointset_Powerset<NNC_Polyhedron>'
required_instantiations_c_cxx_headers='ppl_c_Polyhedron.hh ppl_c_Grid.hh ppl_c_Rational_Box.hh ppl_c_BD_Shape_mpz_class.hh ppl_c_BD_Shape_mpq_class.hh ppl_c_Octagonal_Shape_mpz_class.hh ppl_c_Octagonal_Shape_mpq_class.hh ppl_c_Constraints_Product_C_Polyhedron_Grid.hh ppl_c_Pointset_Powerset_C_Polyhedron.hh ppl_c_Pointset_Powerset_NNC_Polyhedron.hh'
required_instantiations_c_cxx_objects='ppl_c_Polyhedron.lo ppl_c_Grid.lo ppl_c_Rational_Box.lo ppl_c_BD_Shape_mpz_class.lo ppl_c_BD_Shape_mpq_class.lo ppl_c_Octagonal_Shape_mpz_class.lo ppl_c_Octagonal_Shape_mpq_class.lo ppl_c_Constraints_Product_C_Polyhedron_Grid.lo ppl_c_Pointset_Powerset_C_Polyhedron.lo ppl_c_Pointset_Powerset_NNC_Polyhedron.lo'
required_instantiations_c_cxx_sources='ppl_c_Polyhedron.cc ppl_c_Grid.cc ppl_c_Rational_Box.cc ppl_c_BD_Shape_mpz_class.cc ppl_c_BD_Shape_mpq_class.cc ppl_c_Octagonal_Shape_mpz_class.cc ppl_c_Octagonal_Shape_mpq_class.cc ppl_c_Constraints_Product_C_Polyhedron_Grid.cc ppl_c_Pointset_Powerset_C_Polyhedron.cc ppl_c_Pointset_Powerset_NNC_Polyhedron.cc'
required_instantiations_canonical_names='Polyhedron@Grid@Rational_Box@BD_Shape_mpz_class@BD_Shape_mpq_class@Octagonal_Shape_mpz_class@Octagonal_Shape_mpq_class@Constraints_Product_C_Polyhedron_Grid@Pointset_Powerset_C_Polyhedron@Pointset_Powerset_NNC_Polyhedron'
required_instantiations_java_classes='Polyhedron.class C_Polyhedron.class NNC_Polyhedron.class Grid.class Rational_Box.class BD_Shape_mpz_class.class BD_Shape_mpq_class.class Octagonal_Shape_mpz_class.class Octagonal_Shape_mpq_class.class Constraints_Product_C_Polyhedron_Grid.class Pointset_Powerset_C_Polyhedron.class Pointset_Powerset_C_Polyhedron_Iterator.class Pointset_Powerset_NNC_Polyhedron.class Pointset_Powerset_NNC_Polyhedron_Iterator.class'
required_instantiations_java_cxx_headers='parma_polyhedra_library.Polyhedron parma_polyhedra_library.C_Polyhedron parma_polyhedra_library.NNC_Polyhedron parma_polyhedra_library.Grid parma_polyhedra_library.Rational_Box parma_polyhedra_library.BD_Shape_mpz_class parma_polyhedra_library.BD_Shape_mpq_class parma_polyhedra_library.Octagonal_Shape_mpz_class parma_polyhedra_library.Octagonal_Shape_mpq_class parma_polyhedra_library.Constraints_Product_C_Polyhedron_Grid parma_polyhedra_library.Pointset_Powerset_C_Polyhedron parma_polyhedra_library.Pointset_Powerset_C_Polyhedron_Iterator parma_polyhedra_library.Pointset_Powerset_NNC_Polyhedron parma_polyhedra_library.Pointset_Powerset_NNC_Polyhedron_Iterator'
required_instantiations_java_cxx_headers_sources='parma_polyhedra_library_Polyhedron.h parma_polyhedra_library_C_Polyhedron.h parma_polyhedra_library_NNC_Polyhedron.h parma_polyhedra_library_Grid.h parma_polyhedra_library_Rational_Box.h parma_polyhedra_library_BD_Shape_mpz_class.h parma_polyhedra_library_BD_Shape_mpq_class.h parma_polyhedra_library_Octagonal_Shape_mpz_class.h parma_polyhedra_library_Octagonal_Shape_mpq_class.h parma_polyhedra_library_Constraints_Product_C_Polyhedron_Grid.h parma_polyhedra_library_Pointset_Powerset_C_Polyhedron.h parma_polyhedra_library_Pointset_Powerset_C_Polyhedron_Iterator.h parma_polyhedra_library_Pointset_Powerset_NNC_Polyhedron.h parma_polyhedra_library_Pointset_Powerset_NNC_Polyhedron_Iterator.h'
required_instantiations_java_cxx_objects='ppl_java_Polyhedron.lo ppl_java_Grid.lo ppl_java_Rational_Box.lo ppl_java_BD_Shape_mpz_class.lo ppl_java_BD_Shape_mpq_class.lo ppl_java_Octagonal_Shape_mpz_class.lo ppl_java_Octagonal_Shape_mpq_class.lo ppl_java_Constraints_Product_C_Polyhedron_Grid.lo ppl_java_Pointset_Powerset_C_Polyhedron.lo ppl_java_Pointset_Powerset_NNC_Polyhedron.lo'
required_instantiations_java_cxx_sources='ppl_java_Polyhedron.cc ppl_java_Grid.cc ppl_java_Rational_Box.cc ppl_java_BD_Shape_mpz_class.cc ppl_java_BD_Shape_mpq_class.cc ppl_java_Octagonal_Shape_mpz_class.cc ppl_java_Octagonal_Shape_mpq_class.cc ppl_java_Constraints_Product_C_Polyhedron_Grid.cc ppl_java_Pointset_Powerset_C_Polyhedron.cc ppl_java_Pointset_Powerset_NNC_Polyhedron.cc'
required_instantiations_java_sources='Polyhedron.java C_Polyhedron.java NNC_Polyhedron.java Grid.java Rational_Box.java BD_Shape_mpz_class.java BD_Shape_mpq_class.java Octagonal_Shape_mpz_class.java Octagonal_Shape_mpq_class.java Constraints_Product_C_Polyhedron_Grid.java Pointset_Powerset_C_Polyhedron.java Pointset_Powerset_C_Polyhedron_Iterator.java Pointset_Powerset_NNC_Polyhedron.java Pointset_Powerset_NNC_Polyhedron_Iterator.java'
required_instantiations_ocaml_cxx_headers='ppl_ocaml_Polyhedron.hh ppl_ocaml_Grid.hh ppl_ocaml_Rational_Box.hh ppl_ocaml_BD_Shape_mpz_class.hh ppl_ocaml_BD_Shape_mpq_class.hh ppl_ocaml_Octagonal_Shape_mpz_class.hh ppl_ocaml_Octagonal_Shape_mpq_class.hh ppl_ocaml_Constraints_Product_C_Polyhedron_Grid.hh ppl_ocaml_Pointset_Powerset_C_Polyhedron.hh ppl_ocaml_Pointset_Powerset_NNC_Polyhedron.hh'
required_instantiations_ocaml_cxx_objects='ppl_ocaml_Polyhedron.o ppl_ocaml_Grid.o ppl_ocaml_Rational_Box.o ppl_ocaml_BD_Shape_mpz_class.o ppl_ocaml_BD_Shape_mpq_class.o ppl_ocaml_Octagonal_Shape_mpz_class.o ppl_ocaml_Octagonal_Shape_mpq_class.o ppl_ocaml_Constraints_Product_C_Polyhedron_Grid.o ppl_ocaml_Pointset_Powerset_C_Polyhedron.o ppl_ocaml_Pointset_Powerset_NNC_Polyhedron.o'
required_instantiations_ocaml_cxx_sources='ppl_ocaml_Polyhedron.cc ppl_ocaml_Grid.cc ppl_ocaml_Rational_Box.cc ppl_ocaml_BD_Shape_mpz_class.cc ppl_ocaml_BD_Shape_mpq_class.cc ppl_ocaml_Octagonal_Shape_mpz_class.cc ppl_ocaml_Octagonal_Shape_mpq_class.cc ppl_ocaml_Constraints_Product_C_Polyhedron_Grid.cc ppl_ocaml_Pointset_Powerset_C_Polyhedron.cc ppl_ocaml_Pointset_Powerset_NNC_Polyhedron.cc'
required_instantiations_prolog_cxx_headers='ppl_prolog_Polyhedron.hh ppl_prolog_Grid.hh ppl_prolog_Rational_Box.hh ppl_prolog_BD_Shape_mpz_class.hh ppl_prolog_BD_Shape_mpq_class.hh ppl_prolog_Octagonal_Shape_mpz_class.hh ppl_prolog_Octagonal_Shape_mpq_class.hh ppl_prolog_Constraints_Product_C_Polyhedron_Grid.hh ppl_prolog_Pointset_Powerset_C_Polyhedron.hh ppl_prolog_Pointset_Powerset_NNC_Polyhedron.hh'
required_instantiations_prolog_cxx_objects='ppl_prolog_Polyhedron.lo ppl_prolog_Grid.lo ppl_prolog_Rational_Box.lo ppl_prolog_BD_Shape_mpz_class.lo ppl_prolog_BD_Shape_mpq_class.lo ppl_prolog_Octagonal_Shape_mpz_class.lo ppl_prolog_Octagonal_Shape_mpq_class.lo ppl_prolog_Constraints_Product_C_Polyhedron_Grid.lo ppl_prolog_Pointset_Powerset_C_Polyhedron.lo ppl_prolog_Pointset_Powerset_NNC_Polyhedron.lo'
required_instantiations_prolog_cxx_sources='ppl_prolog_Polyhedron.cc ppl_prolog_Grid.cc ppl_prolog_Rational_Box.cc ppl_prolog_BD_Shape_mpz_class.cc ppl_prolog_BD_Shape_mpq_class.cc ppl_prolog_Octagonal_Shape_mpz_class.cc ppl_prolog_Octagonal_Shape_mpq_class.cc ppl_prolog_Constraints_Product_C_Polyhedron_Grid.cc ppl_prolog_Pointset_Powerset_C_Polyhedron.cc ppl_prolog_Pointset_Powerset_NNC_Polyhedron.cc'
required_instantiations_prolog_generated_test_sources='ppl_prolog_generated_test_Polyhedron.pl ppl_prolog_generated_test_Grid.pl ppl_prolog_generated_test_Rational_Box.pl ppl_prolog_generated_test_BD_Shape_mpz_class.pl ppl_prolog_generated_test_BD_Shape_mpq_class.pl ppl_prolog_generated_test_Octagonal_Shape_mpz_class.pl ppl_prolog_generated_test_Octagonal_Shape_mpq_class.pl ppl_prolog_generated_test_Constraints_Product_C_Polyhedron_Grid.pl ppl_prolog_generated_test_Pointset_Powerset_C_Polyhedron.pl ppl_prolog_generated_test_Pointset_Powerset_NNC_Polyhedron.pl'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sicstus_prolog=''
subdirs=' Watchdog'
swi_prolog=''
sysconfdir='${prefix}/etc'
target_alias=''
uudecode='yes'
xsb_prolog=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define PACKAGE_NAME "the Parma Polyhedra Library"
#define PACKAGE_TARNAME "ppl"
#define PACKAGE_VERSION "0.10.2"
#define PACKAGE_STRING "the Parma Polyhedra Library 0.10.2"
#define PACKAGE_BUGREPORT "ppl-devel@cs.unipr.it"
#define PPL_CONFIGURE_OPTIONS " '--prefix=/contrib/ppl-0.10.2' '--with-libgmp-prefix=/contrib/gmp-4.3.1/' '--with-java=/usr/java5/' '--enable-cxx' 'CC=xlc' 'CXX=xlC'"
#define PPL_NDEBUG 1
#define PPL_FPMATH_MAY_USE_387 1
#define PPL_FPMATH_MAY_USE_SSE 1
#define PPL_COEFFICIENT_TYPE mpz_class
#define PPL_COEFFICIENT_BITS 0
#define PPL_GMP_INTEGERS 1
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define WORDS_BIGENDIAN 1
#define HAVE_TYPEOF 1
#define typeof __typeof__
#define SIZEOF_CHAR 1
#define SIZEOF_SHORT 2
#define SIZEOF_INT 4
#define SIZEOF_LONG 8
#define SIZEOF_LONG_LONG 8
#define SIZEOF_SIZE_T 8
#define SIZEOF_FLOAT 4
#define SIZEOF_DOUBLE 8
#define SIZEOF_LONG_DOUBLE 8
#define SIZEOF_INTP 8
#define SIZEOF_FP 8
#define HAVE_FENV_H 1
#define PPL_CAN_CONTROL_FPU 1
#define PPL_CXX_PROVIDES_PROPER_LONG_DOUBLE 0
#define PPL_CXX_FLOAT_BINARY_FORMAT PPL_FLOAT_IEEE754_SINGLE
#define PPL_CXX_FLOAT_EXACT_OUTPUT 0
#define PPL_SUPPORTED_FLOAT 0
#define PPL_CXX_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
#define PPL_CXX_DOUBLE_EXACT_OUTPUT 0
#define PPL_SUPPORTED_DOUBLE 0
#define PPL_CXX_LONG_DOUBLE_BINARY_FORMAT PPL_FLOAT_IEEE754_DOUBLE
#define PPL_CXX_LONG_DOUBLE_EXACT_OUTPUT 0
#define PPL_SUPPORTED_LONG_DOUBLE 0
#define PPL_CXX_SUPPORTS_FLEXIBLE_ARRAYS 1
#define PPL_CXX_SUPPORTS_IEEE_INEXACT_FLAG 1
#define PPL_CXX_HAS_REMAINDER_BUG 1
#define PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK 1
#define HAVE_FENV_H 1
#define HAVE_SIGNAL_H 1
#define HAVE_STRING_H 1
#define HAVE_STRINGS_H 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DECL_FFS 1
#define HAVE_DECL_GETENV 1
#define HAVE_DECL_STRTOF 1
#define HAVE_DECL_STRTOD 1
#define HAVE_DECL_STRTOLD 1
#define HAVE_DECL_STRTOLL 1
#define HAVE_DECL_STRTOULL 1
#define HAVE_DECL_FMA 1
#define HAVE_DECL_FMAF 1
#define HAVE_DECL_FMAL 1
#define HAVE_DECL_RINTF 1
#define HAVE_DECL_RINTL 1
#define HAVE_INT_FAST16_T 1
#define HAVE_INT_FAST32_T 1
#define HAVE_INT_FAST64_T 1
#define HAVE_UINT_FAST16_T 1
#define HAVE_UINT_FAST32_T 1
#define HAVE_UINT_FAST64_T 1
#define SIZEOF_MP_LIMB_T 8
#define PPL_GMP_SUPPORTS_EXCEPTIONS 1
#define HAVE___MPZ_STRUCT__MP_ALLOC 1
#define HAVE___MPZ_STRUCT__MP_SIZE 1
#define HAVE___MPZ_STRUCT__MP_D 1
#define HAVE_SETITIMER 1
#define PPL_WATCHDOG_LIBRARY_ENABLED 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define HAVE_DECL_RLIMIT_DATA 1
#define HAVE_DECL_RLIMIT_RSS 1
#define HAVE_DECL_RLIMIT_VMEM 0
#define HAVE_DECL_RLIMIT_AS 1
#define HAVE_DECL_GETRUSAGE 1
#define HAVE_TIMEVAL 1
#define HAVE_SIGINFO_T 1
#define PPL_CXX_SUPPORTS_LIMITING_MEMORY 0

configure: exit 0
