Mapping of options

The topic provides a mapping of classic IBM® XL C/C++ compiler options and Clang options that have the same or similar functions. 

Note: Suboptions of these options do not necessarily have a one-to-one mapping.
Table 1. Mapping of compiler options
Classic options supported by IBM XL C/C++ for AIX® 16.1.0 Similar/equivalent Clang options supported by IBM Open XL C/C++ for AIX 17.1.1
-# -###
-+ -x c++
-C! None; the default compiler behavior is as if -C! was in effect.
-E -E or -E -x c for files with unrecognized file name suffixes
-f -Wl,-f
-F None
-G -shared -Wl,-G
Refer to Linking a shared Library with runtime linking for more information.
-ma None
-O -O0, -O1, -O2, -O3, or -Ofast
-p None
-pg None
-P -E -P -o file.i obtains behavior similar to the classic -P option.
-q32 -m32
-q64 -m64
-qaggrcopy None; the default compiler behavior is as if -qaggrcopy was in effect.
-qalias=[no]ansi -f[no-]strict-aliasing
-qalias=suboption, where suboption is not [no]ansi None
-qalign=bit_packed -fpack-struct
-qalignrulefor None
-qalloca None
-q[no]altivec -m[no-]altivec
-qarch -mcpu
-qasm -fasm
-qasm_as None
-qassert None
-qattr None
-qbitfields=signed -fsigned-bitfields
-qbitfields=unsigned None
-qc_stdinc -isystem
-qcpp_stdinc -isystem
-qcache None
-qchars=signed -fsigned-char
-qchars=unsigned -funsigned-char
-qcheck=bounds -fsanitize=bounds -fsanitize-trap=bounds
-qcheck=divzero -fsanitize=integer-divide-by-zero -fsanitize-trap=integer-divide-by-zero
-qcheck=nullptr -fsanitize=null -fsanitize-trap=null
-qcinc None
-qcommon None
-qcompact -Os and -Oz
-qconcurrentupdate None
-qcpluscmt None; the default compiler behavior is as if -qcpluscmt was in effect.
-qcrt None; the default compiler behavior is as if -qcrt was in effect.
-qnocrt -nostartfiles
-qdataimported -mdataimported
-qdatalocal -mdatalocal
-qnodatalocal -mdataimported
-qdbcs None; the compiler supports UTF-8 source files all the time.
-qdbgfmt=dwarf -gdwarf-3
-qdbgfmt=dwarf4 -gdwarf-4
-qdbgfmt=stabstring None
-qdbxextra -fno-eliminate-unused-debug-types
-qdfp None
-q[no]digraph -f[no-]digraphs
-qdirectstorage None
-qdollar -fdollars-in-identifiers
-qdpcl None
-qdump_class_hierarchy -fdump-class-hierarchy or -Xclang -fdump-record-layouts
-qeh -fexceptions
-qnoeh -fignore-exceptions
-qenum None
-qexpfile None
-qextchk None
-qfdpr None
-qflag None
-qfloat=[no]dfpemulate None
-qfloat=[no]fenv None
-qfloat=[no]fltint None
-qfloat=[no]fold None
-qfloat=[no]hscmplx None
-qfloat=[no]hsflt None
-qfloat=[no]hssngl None
-qfloat=maf -ffp-contract=fast
-qfloat=nomaf -ffp-contract=off
-qfloat=[no]nans None
-qfloat=relax -fno-honor-nans -fno-honor-infinities -fdenormal-fp-math=positive-zero -fno-signed-zeros -fno-rounding-math -freciprocal-math
-qfloat=norelax -fhonor-nans -fhonor-infinities -fdenormal-fp-math=ieee -fsigned-zeros -frounding-math -fno-reciprocal-math
-qfloat=[no]rndsngl None
-qfloat=[no]rngchk None
-qfloat=[no]rrm -f[no-]rounding-math
-qfloat=[no]rsqrt None
-qfloat=[no]single None
-qfloat=[no]spnans None
-qfloat=[no]subnormals None
-qflttrap=enable:inexact None
-qflttrap=enable:invalid None
-qflttrap=enable:overflow None
-qflttrap=enable:underflow None
-qflttrap=enable:zerodivide -fsanitize=float-divide-by-zero -fsanitize-trap=float-divide-by-zero
-qflttrap=imprecise None
-qflttrap=nanq None
-qformat -Wformat
-qfullpath None; the default compiler behavior is as if -qfullpath was in effect.
-q[no]funcsect -f[no-]function-sections
-qfunctrace None
-qgcc_c_stdinc None
-qgcc_cpp_stdinc None
-qgenproto None
-qhalt=w -Werror
-qhaltonmsg None
-qheapdebug None
-qhelp -help
-qhot -Ofast
-qhot=suboption None
-qidirfirst None
-qignerrno -fno-math-errno
-qignprag None
-qinclude -include
-qinfo=[no]unset -W[no-]uninitialized
-qinfo=suboption, where suboption is not [no]unset None
-qinitauto None
-qinlglue None; the default compiler behavior is as if -qnoinlglue was in effect.
-q[no]inline -f[no-]inline
-qinline=auto -finline-functions
-qinline=noauto -finline-hint-functions
-qinline=level=1 -mllvm --inline-threshold=45 -mllvm --inlinehint-threshold=325
-qinline=level=2 -mllvm --inline-threshold=90 -mllvm --inlinehint-threshold=325
-qinline=level=3 -mllvm --inline-threshold=135 -mllvm --inlinehint-threshold=325
-qinline=level=4 -mllvm --inline-threshold=180 -mllvm --inlinehint-threshold=325
-qinline=level=5 -mllvm --inline-threshold=225 -mllvm --inlinehint-threshold=325
-qinline=level=6 -mllvm --inline-threshold=270 -mllvm --inlinehint-threshold=395
-qinline=level=7 -mllvm --inline-threshold=315 -mllvm --inlinehint-threshold=465
-qinline=level=8 -mllvm --inline-threshold=360 -mllvm --inlinehint-threshold=535
-qinline=level=9 -mllvm --inline-threshold=405 -mllvm --inlinehint-threshold=605
-qinline=level=10 -mllvm --inline-threshold=450 -mllvm --inlinehint-threshold=650
-qipa -flto
-qisolated_call None
-qkeepinlines None
-qkeepparm None
-qkeyword None
C only-qlanglvl=stdc89 -std=c89 | c90
C only-qlanglvl=extc89 -std=gnu89 | gnu90
C only-qlanglvl=stdc99 -std=c99
C only-qlanglvl=extc99 -std=gnu99
C only-qlanglvl=stdc11 -std=c11
C only-qlanglvl=extc1x -std=gnu11
C only-qlanglvl=extended -std=gnu89
C++ only-qlanglvl=strict98 -std=c++98/c++03
C++ only-qlanglvl=extended -std=gnu++98 | gnu++03
C++ only-qlanglvl=extended0x -std=c++0x | gnu++11 | gnu++0x
C++ only-qlanglvl=extended1y -std=gnu++1y | gnu++14
-qlanglvl=[no]gnu_warning -W[no-]#warnings
-qlargepage None
-qldbl128 None
-qlongdouble None
-qnolib -nodefaultlibs
-qnolibansi -fno-builtin
-qlibmpi None; the default compiler behavior is as if -qnolibmpi was in effect.
-qlinedebug -g1 or -gline-tables-only
-qlist -S
-qlistfmt None
-qlistopt None
-qlonglit None
-qlonglong None; the default compiler behavior is as if -qlonglong was in effect.
-qmacpstr -fpascal-strings
-qmakedep None
-qmaxerr -ferror-limit
-qmaxmem None
-qmbcs None; the compiler supports UTF-8 source files all the time.
-qminimaltoc None
-qmkshrobj -shared
Refer to Linking shared libraries for more information.
-qmkshrobj=priority -bcdtors::priority:
Refer to Linking shared libraries for more information.
-qnamemangling None
-qobjmodel None
-qoldpassbyvalue None
-qoptdebug None
-qoptfile @file
-qoptimize --optimize
-qpack_semantic=gnu -fno-xl-pragma-pack
-qpack_semantic=ibm -fxl-pragma-pack
-qpagesize None
-qpath None
-qpdf1 -fprofile-generate
-qpdf2 -fprofile-use
-qphsinfo -ftime-report
-qpic=small -fpic
-qpic=large -fpic -mcmodel=large -Wl,-bbigtoc
-qppline None
-qnoppline -E -P
-qprefetch None
-qprint None
-qpriority None
-qprocimported None
-qproclocal None
-qprocunknown None
-qprofile None
-qproto None; the default compiler behavior is as if -qnoproto was in effect.
-qreport None
-qreserved_reg None
-qrestrict -frestrict-args
-qro None; the default compiler behavior is as if -qro was in effect.
-qroconst None; the default compiler behavior is as if -qroconst was in effect.
-qroptr None; the default compiler behavior is as if -qnoroptr was in effect.
-q[no]rtti -f[no-]rtti
-qsaveopt None
-qshowinc None
-qshowmacros -dM
-qshowpdf None
-qsimd=noauto -fno-vectorize -fno-slp-vectorize
-qskipsrc None
-qslmtags None
-qsmallstack None
-qsmp None
-qsource None
-qsourcetype -x
-qsourcetype=default -x none
-qspeculateabsolutes None
-qspill None
-q[no]srcmsg -f[no-]caret-diagnostics
-qstackprotect -fstack-protector
-qstaticinline None
-qstaticlink None
-qstatsym None
-qstdinc -nostdinc
-qnostdinc -nostdinc++
-qstrict=association -fno-associative-math
-qstrict=noassociation -fassociative-math
-qstrict=[no]nans -f[no-]honor-nans
-qstrict=[no]infinities -f[no-]honor-infinities
-qstrict=[no]zerosigns -f[no-]signed-zeros
-qstrict=subnormals -fdenormal-fp-math=ieee
-qstrict=nosubnormals -fdenormal-fp-math=positive-zero or -fdenormal-fp-math=preserve-sign
-qstrict=operationprecision -fno-reciprocal-math
-qstrict=nooperationprecision -freciprocal-math
-qstrict=[no]vectorprecision None
-qstrict=[no]reductionorder None
-qstrict=[no]guards None
-qstrict=[no]library None
-qstrict=order -fno-associative-math
-qstrict=noorder -fassociative-math
-qstrict=ieeefp -fhonor-nans -fhonor-infinities -fdenormal-fp-math=ieee -fsigned-zeros -frounding-math -fno-reciprocal-math
-qstrict=noieeefp -fno-honor-nans -fno-honor-infinities -fdenormal-fp-math=positive-zero -fno-signed-zeros -fno-rounding-math -freciprocal-math
-qstrict=exceptions -fhonor-nans -fhonor-infinities -fdenormal-fp-math=ieee -ffp-exception-behavior=strict
-qstrict=noexceptions -fno-honor-nans -fno-honor-infinities -fdenormal-fp-math=positive-zero -ffp-exception-behavior=ignore
-qstrict=precision -fno-associative-math -fdenormal-fp-math=ieee -fno-reciprocal-math
-qstrict=noprecision -fassociative-math -fdenormal-fp-math=positive-zero -freciprocal-math
-qstrict_induction None
-qsuppress None
-qsymtab None
-qsyntaxonly -fsyntax-only
-qtabsize None
-qtbtable None; the default compiler behavior is as if -qtbtable=full was in effect.
-qtempinc None
-qtemplatedepth -ftemplate-depth
-qtemplaterecompile None
-qtemplateregistry None
-qtempmax None
-qthreaded -pthread
-qtimestamps None
-qtls -ftls-model
-qtmplinst None
-qtmplparse None
-qtocdata None
-qtocmerge None
-qtrigraph -trigraphs
-qtune None
-qtwolink -bcdtors:mbr
-qunique None
-q[no]unroll -f[no-]unroll-loops
-qunroll=yes None
-qunwind None
-qupconv None; the default compiler behavior is as if -qnoupconv was in effect.
-qutf None
-qvecnvol -mabi=vec-extabi
-qnovecnvol -mabi=default
-qversion --version
-qvisibility -fvisibility; see also -fvisibility-inlines-hidden.
-qvrsave None; the default compiler behavior is as if -qnovrsave was in effect.
-qwarn0x None
-qwarn64 None
-qweakexp None
-qweaksymbol None; the default compiler behavior is as if -qweaksymbol was in effect.
-qxcall None
-qxlcompatmacros None
-qxref None
-s -Wl,-s
-t None
-v -v
-V -v
-y None
-Z -Wl,-Z

Related information