FlexeLint for C/C++ (U32) Ver. 8.00p, Copyright Gimpel Software 1985-2004 Error Inhibition Options (- inhibits and + enables error messages) (# may include wild-card characters '?' and '*') -e# inhibit message number # !e# inhibit message # this line -e(#) inhibit for next expression --e(#) for entire current expression -e{#} inhibit for next {region} --e{#} for entire current {region} -eai args differ sub-integer -ean args differ nominally -eas args same size -eau args differ signed-unsigned -efile(#,) by number, file -efunc(#,) by number, function -elib(#) within library headers -elibsym(#) for all library symbols -emacro(#,Symbol) within macro -emacro((#),Symbol) within expr macro --emacro((#),Symbol) within expr macro -emacro({#},Symbol) next stmt macro --emacro({#},Symbol) within stmt macro -epn pointers to nominal -epnc pointers to nominal chars -epp pointers are pointers -eps pointers to same size -epu pointers to signed-unsigned -epuc pointers to sgnd-unsgnd chars -esym(#,Symbol) by number, symbol -etd() ignore type diff. -etemplate(#) within template expansion -w set warning level (0,1,2,3,4) -wlib() library warning level Size and Alignment Options (default value(s)) -sb# bits in a byte (8) -sbo# sizeof(bool) (1) -sc# sizeof(char) (1) -slc# sizeof(long char) (2) -ss# sizeof(short) (2) -si# sizeof(int) (4) -sl# sizeof(long) (4) -sll# sizeof(long long) (8) -sf# sizeof(float) (4) -sd# sizeof(double) (8) -sld# sizeof(long double) (16) -smp# size of all member ptrs (4) -smpD# size of mem ptr (data) (4) -smpP# size of mem ptrs (prog) (4) -sp# sizeof(all pointers) (4) -spD# size of both data ptrs (4) -spP# size of both program ptrs (4) -sw# size of wide char (2) -a# specifies alignment, any code used for size # = 1, no alignment; # = 2, 2-byte boundary; etc. By default, a type's alignment is the largest power of 2 that divides the size of the type Verbosity Options (- output to stdout only, + to stderr and stdout) Format: {-+}v[cdh-iostw#][mf] Zero or more of: c: unique Calls d: module Dialect h: dump strong type Hierarchy h-: h in compressed form i: Indirect files o: Options s: Storage consumed t: Template expansions w: specific Walks #: append file ID nos. One of: m: Module names f: header Files (implies m) : every lines (implies f) Special cases (no suboptions): -v Turn off verbosity +v direct verbosity to both Flag Options (+ sets,- resets, ++ increments and -- decrements flag) f@m @ is a modifier (OFF) fab ABbreviated structures (OFF) fai pointed-to Arg is Initialized(ON) fan ANonymous unions (OFF) fas Anonymous Structures (OFF) fba Bit Addressability (OFF) fbc Boolean Constants 0b... (OFF) fbo Activate bool, true, false (ON) fbu force Bit fields Unsigned (OFF) fce continue-on-error (OFF) fcp (C++) Force C++ processing (OFF) fct Create Tags (OFF) fcu char-is-unsigned (OFF) fdc (C++) Distinguish plain Char (ON) fdh append '.h' to header names (OFF) fdi Directory of Including file(ON) fdl pointer-diff.-is-long (OFF) fdr deduce-return-mode (OFF) feb enum's can be Bitfields (ON) fem allow Early Modifiers (OFF) fep Extended Preprocessor exps. (OFF) fet requires Explicit Throws (OFF) ffb for clause creates Block (ON) ffc Function takes Custody (ON) ffd promote floats to double (OFF) ffn full file name (OFF) ffo flush output each msg (ON) fhd hierarchy down warning (ON) fhg hierarchy uses graph. chars (OFF) fhs hierarchy of strong types (ON) fhx hierarchy of index types (ON) fie integer-model-for-enums (OFF) fii inhibit inference (OFF) fil indentation check of labels (OFF) fim -i can have multiple dirs. (ON) fiq ignore default qualifier (OFF) fis integral consts. are signed (OFF) fkp K&R preprocessor (OFF) flb library (OFF) flc allow long char (OFF) flf (C++) process lib func defs (OFF) fll allow long long int (OFF) flm Lock Message format (OFF) fln activate #line (ON) fmc macro concatenation (OFF) fmd multiple definitons (OFF) fna (C++) allow 'operator new[]' (ON) fnc nested comments (OFF) fnn (C++) new can return NULL (OFF) fnt (C++) Nested Tags (ON) fod Output Declared to object (OFF) fol Output Library to object (OFF) fpa PAuse before exiting (OFF) fpc Pointer Casts retain lvalue(OFF) fpm Precision is Max of args (OFF) fpn pointer param may be NULL (OFF) fps Parameters within Strings (OFF) frb Files fopen'ed with "rb" (OFF) frl Reference Location info (ON) frn Treat CR as new-line (OFF) fsa structure-assignment (ON) fsc strings are const char * (OFF) fsp SPecific function calls (ON) fss regard Sub-Struct as base (ON) fsu string unsigned (OFF) ftf raw template functions (OFF) ftg permit Tri Graphs (ON) ftr truncate filenames to 8x3 (OFF) ful unsigned long (ON) fva variable arguments (OFF) fvo void data type (ON) fvr varying-return-mode (OFF) fwc use internal wchar_t (OFF) fwu wchar_t is unsigned (OFF) fxa eXact array arg. (OFF) fxc eXact char arg. (OFF) fxf eXact float arg. (OFF) fxs eXact short arg. (OFF) fzl sizeof-is-long (OFF) fzu sizeof-is-unsigned (ON) Message Presentation Options -append(#,msg) Appends msg for error # -h[abfFrsm//]] message height (default = -ha_3) ( is msg ht., position indicator placed a=above or b=below line, f= more file info, F= always file info, r= repeat line, s= space between messages, m// Macro Indicator is , mn= no macros ) -width(,) message width (default = -width(79,4)) -format=... specifies message format -format4a=, -format4b= specifies format if msg. ht. = 4 -format_specific=... prologue to specific Walk messages format codes: %f filename, %l line no, %(...%) use ... if filename, %t msg type, %n msg no, %m message, %c col no, %C col no +1, %i function, \n newline, \t tab, \s space, \a alarm \q quote, \\ backslash Other Options -A only ANSI keywords -/+b No/Redirect Banner line -c compiler code -/+cpp(extension) remove/add .ext for C++ files -d[=] defines symbol -D[=][;[=]]... define set of symbols +d... or +D... same as -d or -D except it locks in definitions +ext(ext[,ext]...) extensions -- defaults to +ext(lnt,cpp,c) -fallthrough a case of a switch allowing flow from above -father(Parent,Children) a stricter verson of parent -function(f0,f1[,f2]...) make function f1 (, f2 ...) like f0; f0 is any function bearing a user or built-in semantic -header(file) auto-includes file in each module +headerwarn(file) Causes Msg 829 to be issued for a given file -i #include directory -ident() add identifier characters -ident1() define 1-char identifier -idlen([,opt]) report identifier clashes in chars opt: x=external, p=preprocessor, c=compiler -incvar(name) change name of INCLUDE environment variable -index(flags,ixtype,type(s)) establish ixtype as index type flags: c == allow Constants, d == allow Dimensions +libclass([all,angle,ansi,foreign]...) default library headers -/+libdir(directory[,...]) deny or specify library directory -/+libh(header[,...]) deny or specify library header by name -library sets library flag -limit() limits the number of messages +linebuf doubles size of line buffer +lnt(ext) file.ext is treated like file.lnt -lobbase(filename) establish a lob base file -/+macros halve/double the maximum macro size -maxopen() assumed number of openable files -od[options](filename) Output declarations of defined external objects and functions including prototypes, options: f=only functions, i=internal functions, s=structs =specify break width -oe(filename) Redirect to standard Error (+oe appends) -ol(filename) Output library file -oo[(filename)] Output to lint object file -os(filename) Redirect to standard out (+os appends) -p[(n)] just preprocess, n == max output width -passes(k[,Opt1[,Opt2]]) requests k passes -parent(Parent,Children) augment strong type hierarchy -ppw(word[,...]) disables(-) or enables(+) pre-processor ... +ppw(word[,...]) keywords, eg: +ppw(ident) enables #ident --ppw(word[,...]) removes built-in meaning of word -ppw_asgn(w1,w2) assigns pre-proc meaning of w2 to w1 +pragma(name,action) associates action with name action is one of: 'on', 'off', 'once', 'message' -pragma(name) disables pragma -printf(#,id[,...]) id is printf-like, # is arg. no. of format -printf_code(Code[,Type]) allows user-defined printf codes -restore resets error inhibitions -rw(word[,...]) disables(-) or enables(+) reserved words ... +rw(word[,...]) word = '*ms' implies all MS keywords --rw(word[,...]) removes built-in meaning of word -rw_asgn(w1,w2) assigns reserved word meaning of w2 to w1 -save saves error inhibitions -scanf(#,id[,...]) scanf-like, # is arg. no. of format -scanf_code(Code[,Type]) allows user-defined scanf codes -sem(name,sem[,sem]...) associates a set of semantics with a function -size(flags,amount) report large aggregates; flags: a auto, s static -specific(op1[,op2]) Options op1 before and op2 after every specific walk -specific_climit(n) Per function Limit on the no. of recorded calls -specific_wlimit(n) Walk limit on the number of recursively generated calls -specific_retry(n) n == 0 implies inhibiting rewalking with same parameters -strong(Flags,Type(s)) check strong types ..., Flags are: A[irpacz] == on Asgn to (except Init, Ret, Param, Asgn op, Consts, Zero); J[erocz] == on Joining (except Eqlty, Rel, Other ops, Constants, Zero); X == on eXtraction; l == allow library; B[f] or b[f] == strong and weak Boolean (f == length-1 bit fields are NOT Boolean) -t# set tab size to # -u unit checkout --u -u and ignore modules at lower .lnt level -unreachable a point in a program is unreachable -u undefines --u ignore past and future defines of -w set warning level (0,1,2,3,4) -wlib() set warning level for msgs. within library -wprintf(#,id[,...]) wide char version of -printf -wscanf(#,id[,...]) wide char version of -scanf -zero[(#)] sets exit code to 0, unless msg. no. < # -$ permits $ in identifiers Compiler-adaptation Options -a#(tokens) (Unix) Assert the truth of # for tokens -d()[=] define function-like macro -#d[=] defines symbol (for #include only) -overload(X) hex constant X sets esoteric overload resolution flags -plus(Char) identifies Char as an alternate option char equiv to + -template(X) hex constant X sets esoteric template flags Compiler-adaptation Keywords @ ignore expression to the right _bit 1 bit wide type _gobble ignore next token _ignore_init ignore initializer for data and function body for functions _to_brackets ignore next parenthesized (or bracketed) expression _to_semi ignore until ; _to_eol ignore until end-of-line