Watcom C32 Optimizing Compiler Version 11.0 Copyright by Sybase, Inc., and its subsidiaries, 1984, 1997. All rights reserved. Watcom is a trademark of Sybase, Inc. Usage: wcc386 [options] file [options] Options: ( /option is also accepted ) -3r 386 register calling conventions -3s 386 stack calling conventions -4r 486 register calling conventions -4s 486 stack calling conventions -5r Pentium register calling conventions -5s Pentium stack calling conventions -6r Pentium Pro register calling conventions -6s Pentium Pro stack calling conventions -aa allow non const initializers for local aggregates or unions -ai turn off type checking on static initialization -aq turn off qualifier mismatch warning for const/volatile -bd build target is a dynamic link library (DLL) -bm build target is a multi-thread environment -br build with dll run-time library -bt=<id> build target for operating system <id> -bw build target is a default windowing application -d<id>[=text] precompilation #define <id> [text] -d0 no debugging information -d1{+} line number debugging information -d2 full symbolic debugging information -d3 full symbolic debugging with unreferenced type names -d+ allow extended -d macro definitions -db generate browsing information -e=<num> set limit on number of error messages -ee call epilogue hook routine -ef use full pathnames in error and warning messages -ei force enums to be at least as large as an int -em force enum base type to use minimum integral type -en emit routine names in the code segment -ep[=<num>] call prologue hook routine with <num> stack bytes available -eq do not display error messages (they are still written to a file) -et P5 profiling -ez generate PharLap EZ-OMF object files -fh[=<file>] use pre-compiled headers -fhq[=<file>] do not display pre-compiled header activity warnings -fi=<file> force <file> to be included -fo[=<file>] set object or preprocessor output file name -fr[=<file>] set error file name -fp2 generate 287 floating-point code -fp3 generate 387 floating-point code -fp5 optimize floating-point for Pentium -fp6 optimize floating-point for Pentium Pro -fpc calls to floating-point library -fpi inline 80x87 instructions with emulation -fpi87 inline 80x87 instructions -fpr generate backward compatible 80x87 code -g=<id> set code group name -hc generate Codeview debugging information -hd generate DWARF debugging information -hw generate Watcom debugging information -i=<path> add another include path -j change char default from unsigned to signed -mc compact memory model (small code/large data) -mf flat memory model (small code/small data assuming CS=DS=SS=ES) -ml large memory model (large code/large data) -mm medium memory model (large code/small data) -ms small memory model (small code/small data) -nc=<id> set code class name -nd=<id> set data segment name -nm=<file> set module name -nt=<id> set name of text segment -o{a,b,c,d,e,f[+],h,i,k,l,m,n,o,p,r,s,t,u,x,z} control optimization a -> relax aliasing constraints b -> branch prediction c -> disable <call followed by return> to <jump> optimization d -> disable all optimizations e[=<num>] -> expand user functions inline (<num> controls max size) f -> generate traceable stack frames as needed f+ -> always generate traceable stack frames h -> enable expensive optimizations i -> expand intrinsic functions inline k -> push register saves into flow graph l -> enable loop optimizations l+ -> enable loop unrolling optimizations m -> generate inline code for math functions n -> allow numerically unstable optimizations o -> continue compilation if low on memory p -> generate consistent floating-point results r -> reorder instructions for best pipeline usage s -> favor code size over execution time in optimizations t -> favor execution time over code size in optimizations u -> all functions must have unique addresses x -> equivalent to -obmilker -s z -> NULL points to valid memory in the target environment -p{c,l,w=<num>} preprocess source file c -> preserve comments l -> insert #line directives w=<num> -> wrap output lines at <num> columns. Zero means no wrap. -r save/restore segment registers across calls -ri return chars and shorts as ints -s remove stack overflow checks -sg generate calls to grow the stack -st touch stack through SS first -tp=<id> set #pragma on( <id> ) -u<id> undefine macro <id> -v output function declarations to .def -vcap VC++ compatibility: alloca allowed in argument lists -w=<num> set warning level number -wcd=<num> warning control: disable warning message <num> -wce=<num> warning control: enable warning message <num> -we treat all warnings as errors -za disable extensions (i.e., accept only ISO/ANSI C) -zc place literal strings in the code segment -zdf DS floats i.e. not fixed to DGROUP -zdp DS is pegged to DGROUP -zdl Load DS directly from DGROUP -ze enable extensions (i.e., near, far, export, etc.) -zff FS floats i.e. not fixed to a segment -zfp FS is pegged to a segment -zgf GS floats i.e. not fixed to a segment -zgp GS is pegged to a segment -zg generate function prototypes using base types -zk0 double-byte character support: Kanji -zk0u translate double-byte Kanji to Unicode -zk1 double-byte character support: Chinese/Taiwanese -zk2 double-byte character support: Korean -zku double-byte character support: local installed language -zku=<num> load UNICODE translate table for specified code page -zl remove default library information -zld remove file dependency information -zm place each function in separate segment -zp=<num> pack structure members with alignment {1,2,4,8,16} -zpw output warning when padding is added in a struct -zq operate quietly -zs syntax check only -zt[=<num>] set far data threshold (i.e., larger objects go in far memory) -zu SS != DGROUP (i.e., don't assume stack is in your data segment) -zw generate code for Microsoft Windows