Num Name Detailed Description
1 Unclosed Comment (Location) End of file was reached with an open comment still unclosed.  The Location of the open comment is shown.
2 Unclosed Quote An end of line was reached and a matching quote character (single or double) to an earlier quote character on the same line was not found.
3 #else without a #if A #else was encountered not in the scope of a #if, #ifdef or #ifndef.
4 Too many #if levels An internal limit was reached on the level of nesting of #if statements (including #ifdef and #ifndef).
5 Too many #endif's A #endif was encountered not in the scope of a #if or #ifdef or #ifndef.
6 Stack Overflow One of the built-in non-extendable stacks has been overextended.  The possibilities are too many nested #if statements, #includes statements (including all recursive #include statements), static blocks (bounded by braces) or #define replacements.
7 Unable to open include file: FileName FileName is the name of the include file which could not be opened.  See also flag fdi (§5.5 "Flag Options"), option -i...  (§5.7 "Other Options") and §13.2.1 "INCLUDE environment variable"
8 Unclosed #if (Location) A #if (or #ifdef or #ifndef) was encountered without a corresponding #endif.  Location is the location of the #if.
9 Too many #else's in #if (Location) A given #if contained a #else which in turn was followed by either another #else or a #elif.  The error message gives the line of the #if statement that started the conditional that contained the aberration.
10 Expecting 'String' String is the expected token.  The expected token could not be found.  This is commonly given when certain reserved words are not recognized.
 
  int __interrupt f();
 
will receive an Expecting ';' message at the f because it thinks you just declared __interrupt.  The cure is to establish a new reserved word with +rw(__interrupt).  Also, make sure you are using the correct compiler options file.  See also §15.10 "Strange Compilers".
11 Excessive Size The filename specified on a #include line had a length that exceeded FILENAME_MAX characters.
12 Need < or " After a #include is detected and after macro substitution is performed, a file specification of the form <filename> or "filename" is expected.
13 Bad type A type adjective such as long, unsigned, etc. cannot be applied to the type which follows.
14 Symbol 'Symbol' previously defined (Location) The named object has been defined a second time.  The location of the previous definition is provided.  If this is a tentative definition (no initializer) then the message can be suppressed with the +fmd flag.  (§5.5 "Flag Options").
15 Symbol 'Symbol' redeclared (TypeDiff) (Location) The named symbol has been previously declared or defined in some other module (location given) with a type different from the type given by the declaration at the current location.  The parameter TypeDiff provides further information on how the types differ (see Glossary in Chapter §17. "MESSAGES").
16 Unrecognized name A # directive is not followed by a recognizable word.  If this is not an error, use the +ppw option. (§5.7 "Other Options").
17 Unrecognized name A non-parameter is being declared where only parameters should be.
18 Symbol 'Symbol' redeclared (TypeDiff) conflicts with Location A symbol is being redeclared.  The parameter TypeDiff provides further information on how the types differ (see Glossary Chapter §17. "MESSAGES").  Location is the location of the previous definition.
19 Useless Declaration A type appeared by itself without an associated variable, and the type was not a struct and not a union and not an enum.  A double semi-colon can cause this as in:
 
  int x;;
20 Illegal use of = A function declaration was followed by an = sign.
21 Expected { An initializer for an indefinite size array must begin with a left brace.
22 Illegal operator A unary operator was found following an operand and the operator is not a post operator.
23 Expected colon A ? operator was encountered but this was not followed by a : as was expected.
24 Expected an expression, found 'String' An operator was found at the start of an expression but it was not a unary operator.
25 Illegal constant Too many characters were encountered in a character constant (a constant bounded by ' marks).
26 Expected an expression, found 'String' An expression was not found where one was expected.  The unexpected token is placed in the message.
27 Illegal character (0xhh) An illegal character was found in the source code. The hex code is provided in the message.  A blank is assumed.  If you are using strange characters in identifier names you will get this message for which you may use the -ident option.  (See §5.7 "Other Options")
28 Redefinition of symbol 'Symbol' Location The identifier preceding a colon was previously declared at the Location given as not being a label.
30 Expected a constant A constant was expected but not obtained. This could be following a case keyword, an array dimension, bit field length, enumeration value, #if expression, etc.
31 Redefinition of symbol 'Symbol' conflicts with Location A data object or function previously defined in this module is being redefined.
32 Field size (member 'Symbol') should not be zero The length of a field was given as non-positive, (0 or negative).
33 Illegal constant A constant was badly formed as when an octal constant contains one of the digits 8 or 9.
34 Non-constant initializer A non-constant initializer was found for a static data item.
35 Initializer has side-effects An initializer with side effects was found for a static data item.
36 Redefining the storage class of symbol 'Symbol' conflicts with Location An object's storage class is being changed.
37 Value of enumerator 'Symbol' inconsistent (conflicts with Location) An enumerator was inconsistently valued.
38 Offset of symbol 'Symbol' inconsistent (Location) A member of a class or struct appears in a different position (offset from the start of the structure) than an earlier declaration.  This could be caused by array dimensions changing from one module to another.
39 Redefinition of symbol 'Symbol' conflicts with Location A struct or union is being redefined.
40 Undeclared identifier 'Name' Within an expression, an identifier was encountered that had not previously been declared and was not followed by a left parenthesis.  Name is the name of the identifier.
41 Redefinition of symbol 'Symbol' A parameter of either a function or a macro is being repeated.
42 Expected a statement A statement was expected but a token was encountered that could not possibly begin a statement.
43 Vacuous type for variable 'Symbol' A vacuous type was found such as the void type in a context that expected substance.
44 Need a switch A case or default statement occurred outside a switch.
45 Bad use of register A variable is declared as a register but its type is inconsistent with it being a register (such as a function).
46 Field type should be int Bit fields in a structure should be typed unsigned or int.  If your compiler allows other kinds of objects, such as char, then simply suppress this message.
47 Bad type Unary minus requires an arithmetic operand.
48 Bad type Unary * or the left hand side of the ptr (->) operator requires a pointer operand.
49 Expected a type Only types are allowed within prototypes.  A prototype is a function declaration with a sequence of types within parentheses.  The processor is at a state where it has detected at least one type within parentheses and so is expecting more types or a closing right parenthesis.
50 Attempted to take the address of a non-lvalue Unary & operator requires an lvalue (a value suitable for placement on the left hand side of an assignment operator).
51 Expected integral type Unary ~ expects an integral type (signed or unsigned char, short, int, or long).
52 Expected an lvalue autodecrement (--) and autoincrement (++) operators require an lvalue (a value suitable for placement on the left hand side of an assignment operator).  Remember that casts do not normally produce lvalues.  Thus
 
  ++(char *)p;
 
is illegal according to the ANSI standard.  This construct is allowed by some compilers and is allowed if you use the +fpc option (Pointer Casts are lvalues).  (See §5.5 "Flag Options")
53 Expected a scalar Autodecrement (--) and autoincrement (++) operators may only be applied to scalars (arithmetics and pointers) or to objects for which these operators have been defined.
54 Division by 0 The constant 0 was used on the right hand side of the division operator (/) or the remainder operator (%).
55 Bad type The context requires a scalar, function, array, or struct (unless -fsa).
56 Bad type Add/subtract operator requires scalar types and pointers may not be added to pointers.
57 Bad type Bit operators ( &, | and ^ ) require integral arguments.
58 Bad type Bad arguments were given to a relational operator; these always require two scalars and pointers can't be compared with integers (unless constant 0).
59 Bad type The amount by which an item can be shifted must be integral.
60 Bad type The value to be shifted must be integral.
61 Bad type The context requires a Boolean.  Booleans must be some form of arithmetic or pointer.
62 Incompatible types (TypeDiff) for operator ':' The 2nd and 3rd arguments to ? : must be compatible types.
63 Expected an lvalue Assignment expects its first operand to be an lvalue.  Please note that a cast removes the lvaluedness of an expression.  But see also flag +fpc in §5.5 "Flag Options".
64 Type mismatch (Context) (TypeDiff) There was a mismatch in types across an assignment (or implied assignment, see Context). TypeDiff specifies the type difference.  See options -epn, -eps, -epu, -epp (§5.2 "Error Inhibition Options") to suppress this message when assigning some kinds of pointers.
65 Expected a member name After a dot (.) or pointer (->) operator a member name should appear.
66 Bad type A void type was employed where it is not permitted. If a void type is placed in a prototype then it must be the only type within a prototype.  (See error number 49.)
67 Can't cast from Type to Type Attempt to cast a non-scalar to an integral.
68 Can't cast from Type to Type Attempt to cast a non-arithmetic to a float.
69 Can't cast from Type to Type Bad conversion involving incompatible structures or a structure and some other object.
70 Can't cast from Type to Type Attempt to cast to a pointer from an unusual type (non-integral).
71 Can't cast from Type to Type Attempt to cast to a type that does not allow conversions.
72 Bad option 'String' Was not able to interpret an option.  The option is given in String.
73 Bad left operand The cursor is positioned at or just beyond either an -> or a . operator.  These operators expect an expression primary on their left.  Please enclose any complex expression in this position within parentheses.
74 Address of Register An attempt was made to apply the address (&) operator to a variable whose storage class was given as register.
75 Too late to change sizes (option 'String') The size option was given after all or part of a module was processed.  Make sure that any option to reset sizes of objects be done at the beginning of the first module processed or on the command line before any module is processed.
76 can't open file  String String is the name of the file.  The named file could not be opened for output.  The file was destined to become a PC-lint/FlexeLint object module.
77 Address of bit-field cannot be taken The address of a bit-field cannot be taken.  The rules of C only allow for taking the address of a whole byte (a whole char).
78 Symbol 'Symbol' typedef'ed at Location used in expression The named symbol was defined in a typedef statement and is therefore considered a type.  It was subsequently found in a context where an expression was expected.
79 Bad type for % operator The % operator should be used with some form of integer.
80 this use of ellipsis is not strictly ANSI The ellipsis should be used in a prototype only after a sequence of types not after a sequence of identifiers.  Some compilers support this extension. If you want to use this feature suppress this message.
81 struct/union not permitted in equality comparison Two struct's or union's are being compared with one of == or !=. This is not permitted by the ANSI standard.  If your compiler supports this, suppress this message.
82 return <exp>; illegal with void function The ANSI standard does not allow an expression form of the return statement with a void function.  If you are trying to cast to void as in return (void)f(); and your compiler allows it, suppress this message.
83 Incompatible pointer types with subtraction Two pointers being subtracted have indirect types which differ.  You can get PC-lint/FlexeLint to ignore slight differences in the pointers by employing one or more of the -ep... options described in §5.2 "Error Inhibition Options".
84 sizeof object is zero or object is undefined A sizeof returned a 0 value.  This could happen if the object were undefined or incompletely defined.  Make sure a complete definition of the object is in scope when you use sizeof.
85 Array 'Symbol' has dimension 0 An array (named Symbol) was declared without a dimension in a context that required a non-zero dimension.
86 Structure 'Symbol' has no data elements A structure was declared (in a C module) that had no data members.  Though legal in C++ this is not legal C.
87 Expression too complicated for #ifdef or #ifndef By the rules of C there should be only a single identifier following a #ifdef or a #ifndef.  You may also supply a validly constructed C (or C++) comment.
88 Symbol 'Symbol' is an array of empty elements An array was declared (in a C module) whose elements were each of 0 length. Though legal in C++ this is not permitted C.
89 Argument or option too long ('String') The length of an option (shown in String) exceeds an internal limit.  Please try to decompose the option into something smaller.  At this writing the limit is 610 characters.
90 Option 'String' is only appropriate within a lint comment The indicated option is not appropriate at the command or the .lnt level.  For example if -unreachable is given on the command line you will get this message.
91 Line exceeds Integer characters (use +linebuf) A line read from one of the input files is longer than anticipated.  By default the line buffer size is 600 characters.  Each time you use the +linebuf option you can double this size.  The size can be doubled ad infinitum.
92 Negative array dimension or bit field length (Integer) A negative array dimension or bit field length is not permitted.
93 New-line is not permitted within string arguments to macros A macro invocation contains a string that is split across more than one line.  For example:
 
  A( "Hello
      World" );
 
will trigger this message.  Some compilers accept this construct and you can suppress this message with -e93 if this is your current practice.  But it is more portable to place the string constant on one line.  Thus
 
  A( "Hello World" );
 
would be better.
96 Unmatched left brace for String on Location The purpose of this message is to report the location of a left curly brace that is unmatched by a right curly brace.  Such an unmatched left curly can be far removed from the point at which the unbalance was detected (often the end of the compilation unit).  Providing the location of the left curly can be extremely helpful in determining the source of the imbalance.
101 Expected an identifier While processing a function declarator, a parameter specifier was encountered that was not an identifier, whereas a prior parameter was specified as an identifier.  This is mixing old-style function declarations with the new-style and is not permitted.  For example
 
  void f(n,int m)
 
will elicit this message.
102 Illegal parameter specification Within a function declarator, a parameter must be specified as either an identifier or as a type followed by a declarator.
103 Unexpected declaration After a prototype, only a comma, semi-colon, right parenthesis or a left brace may occur.  This error could occur if you have omitted a terminating character after a declaration or if you are mixing old-style parameter declarations with new-style prototypes.
104 Conflicting types Two consecutive conflicting types were found such as int followed by double.  Remove one of the types!
105 Conflicting modifiers Two consecutive conflicting modifiers were found such as far followed by near.  Remove one of the modifiers!
106 Illegal constant A string constant was found within a preprocessor expression as in
 
  #if ABC == "abc"
 
Such expressions should be integral expressions.
107 Label 'Symbol' (Location) not defined The Symbol at the given Location appeared in a goto but there was no corresponding label.
108 Invalid context A continue or break statement was encountered without an appropriate surrounding context such as a for, while, or do loop or, for the break statement only, a surrounding switch statement.
110 Attempt to assign to void An attempt was made to assign a value to an object designated (possibly through a pointer) as void.
111 Assignment to const object An object declared as const was assigned a value.  This could arise via indirection.  For example, if p is a pointer to a const int then assigning to *p will raise this error.
113 Inconsistent enum declaration The sequence of members within an enum (or their values) is inconsistent with that of another enum (usually in some other module) having the same name.
114 Inconsistent structure declaration for tag 'Symbol' The sequence of members within a structure (or union) is inconsistent with another structure (usually in some other module) having the same name.
115 Struct/union not defined A reference to a structure or a union was made that required a definition and there is no definition in scope. For example, a reference to p->a where p is a pointer to a struct that had not yet been defined in the current module.
116 Inappropriate storage class A storage class other than register was given in a section of code that is dedicated to declaring parameters.  The section is that part of a function preceding the first left brace.
117 Inappropriate storage class A storage class was provided outside any function that indicated either auto or register. Such storage classes are appropriate only within functions.
118 Too few arguments for prototype The number of arguments provided for a function was less than the number indicated by a prototype in scope.
119 Too many arguments for prototype The number of arguments provided for a function was greater than the number indicated by a prototype in scope.
122 Digit (Char) too large for radix The indicated character was found in a constant beginning with zero.  For example, 08 is accepted by some compilers to represent 8 but it should be 010 or plain 8.
123 Macro 'Symbol' defined with arguments at Location this is just a warning The name of a macro defined with arguments was subsequently used without a following '('.  This is legal but may be an oversight.  It is not uncommon to suppress this message (with -e123), because some compilers allow, for example, the macro max() to coexist with a variable max.  (See §15.6 "Error 123 using min or max").
124 Pointer to void not allowed A pointer to void was used in a context that does not permit void.  This includes subtraction, addition and the relationals (> >= < <=).
125 Too many storage class specifiers More than one storage class specifier (static, extern, typedef, register or auto) was found. Only one is permitted.
126 Inconsistent structure definition 'Symbol' The named structure (or union or enum) was inconsistently defined across modules.  The inconsistency was recognized while processing a lint object module.  Line number information was not available with this message.  Alter the structures so that the member information is consistent.
127 Illegal constant An empty character constant ('') was found.
128 Pointer to function not allowed A pointer to a function was found in an arithmetic context such as subtraction, addition, or one of the relationals (> >= < <=).
129 declaration expected, identifier 'Symbol' ignored In a context in which a declaration was expected an identifier was found.  Moreover, the identifier was not followed by '(' or a '['
130 Expected integral type The expression in a switch statement must be some variation of an int (possibly long or unsigned) or an enum.
131 syntax error in call of macro 'Symbol' at location Location This message is issued when a macro with arguments (function-like macro) is invoked and an incorrect number of arguments is provided.  Location is the location of the start of the macro call.  This can be useful because an errant macro call can extend over many lines.
132 Expected function definition A function declaration with identifiers between parentheses is the start of an old-style function definition (K&R style).  This is normally followed by optional declarations and a left brace to signal the start of the function body.  Either replace the identifier(s) with type(s) or complete the function with a function body.
133 Too many initializers for aggregate In a brace-enclosed initializer, there are more items than there are elements of the aggregate.
134 Missing initializer An initializer was expected but only a comma was present.
135 comma assumed in initializer A comma was missing between two initializers.  For example:
 
  int a[2][2] = { { 1, 2 }  { 3, 4 } };
 
is missing a comma after the first right brace (}).
136 Illegal macro name The ANSI standard restricts the use of certain names as macros.  defined is on the restricted list.
137 constant 'Symbol' used twice within switch The indicated constant was used twice as a case within a switch statement. Currently only enumerated types are checked for repeated occurrence.
138 Can't add parent 'Symbol' to strong type String; creates loop An attempt was made to add a strong type parent to a typedef type.  The attempt is either explicit (with the -strong option) or implicit with the use of a typedef to a known strong type. This attempt would have caused a loop in the strong parent relationship.  Such loops are simply not tolerated.
139 Can't take sizeof function There is an attempt to take the sizeof a function.
140 Type appears after modifier Microsoft modifiers such as far, _near, __huge, _pascal, etc. etc. modify the declarator to its immediate right.  It therefore should not appear before the type. For example, you should write int pascal f(void); rather than pascal int f(void);.  Note that const and volatile differ from the Microsoft modifiers.  They may appear before or after the type.  After reporting the error an attempt is made to process the modifiers as the programmer probably intended.  See also the +fem flag in §5.5 "Flag Options".
141 The following option has too many elements: 'String' The indicated option (given by 'String') is too big.  It most likely consists of an itemized list that has too many items.  You should decompose the large option into two or more smaller options that in sum are equivalent to the one large option.
144 Non-existent return value for symbol 'Symbol', compare with Location An attempt was made to use a non-existent return value of the named function (identified by Symbol).  It was previously decided that the function did not return a value or was declared with void.
145 Type expected before operator, void assumed In a context in which a type is expected no type is found.  Rather, an operator '*' or '&' was encountered.  The keyword void was assumed to have preceded this operator.
146 Assuming a binary constant A constant of the form 0b... was encountered.  This was taken to be a binary constant.  For example, 0b100 represents the value 4.  If your compiler supports binary constants you may suppress this message.
147 sizeof takes just one argument An expression of the form sizeof(a,b) was detected.  A second argument is non standard and has been used by some compilers to denote an option to the sizeof operator.  If your compiler has a use for the second argument then suppress this message.
148 member 'Symbol' previously declared at Location The indicated member was previously declared within the same structure or union.  Although a redeclaration of a function may appear benign it is just not permitted by the rules of the language. One of the declarations should be removed.
149 C++ construct 'String' found in C code An illegal construct was found in C code.  It looked as though it might be suitable for C++.  The quoted string identifies the construct further.
150 Token 'String' unexpected String An unexpected token was encountered.  The action taken, if any, is identified by the second message parameter.
151 Token 'Name' inconsistent with abstract type In a context in which an abstract type is allowed such as within a cast or after a sizeof, and after starting to parse the abstract type, an identifier was found.  For example:
 
  x = (int y) z;
152 Lob base file 'file name' missing The indicated file has been specified as the base of lob production via the option -lobbase().  On output, this message is given if the lob base is missing.  The situation is correctable by simply producing the missing lob output.  This will not be a problem given the appropriate dependencies in the make file.  On input, the most likely cause of this message is an out-of-date base file.  A hash code within the lob file being read, did not match a similar code already embedded within the base.  The input lob file should be considered in error and should be regenerated.  See Chapter §7. "LINT OBJECT MODULES".
153 Could not create temporary file This message is produced when generating a lob output file based upon some lob base file.  When the lob file is produced, it is first written to a temporary. The temporary is generated by the C library function tmpnam().
154 Could not evaluate type 'String', int assumed String in the message is the second argument to either a printf_code option or a scanf_code option.  When used, it was to be evaluated as a type.  Unfortunately the type could not be identified.
155 Ignoring { }'ed sequence within an expression, 0 assumed Some compilers support what looks like a compound statement as a C/C++ expression.  For example to define the absolute value of an integer which guarantees that it will be read only once you may use:
 
  #define abs(a) { int b = a; b >= 0 ? b : -b; }
 
The last expression in the list is the result.  To syntactically support the construct without running amuck we recognize the sequence and issue this message.  If you want to use the facility just suppress the message.
156 Braced initializer for scalar type 'Name' An example of an initializer that will draw this complaint is as follows.
 
  int s[] = { { 1 } };
 
After the compiler has seen the first curly it is expecting to see a number (or other numeric expression).  Compilers that strictly adhere to the ISO C and C++ Standards will flag this as ill-formed code.
 
Note that it is legal (but somewhat arcane) to employ a left curly at the top-level when initializing an object of scalar type. For example, the following is well-formed:
 
  int i = { 0 };       // OK; initialize scalar i with 0.
  char *t = { "bar" }; // OK; initialize scalar t with a
                       // pointer to a statically allocated array
 
Also note: as the example above implies, this message can apply to pointers to arrays of char; it does not apply to arrays.
157 No data may follow an incomplete array An incomplete array is allowed within a struct of a C99 or C++ program but no data is allowed to appear after this array.  For example:
 
  struct A { int x; int a[]; int b; };
 
This diagnostic is issued when the 'b' is seen.
200-299   Some inconsistency or contradiction was discovered in the PC-lint/FlexeLint system.  This may or may not be the result of a user error.  This inconsistency should be brought to the attention of Gimpel Software.
301 Stack overflow There was a stack overflow while processing declarations.  Approximately 50 nested declarators were found. For example, if a '/' followed by 50 consecutive '*'s were to introduce a box-like comment and if the '/' were omitted, then this message would be produced.  Cannot be suppressed.
302 Exceeded Available Memory Main memory has been exhausted. Cannot be suppressed.
303 String too long (try +macros) A single #define definition or macro invocation exceeded an internal limit (of 4096 characters). As the diagnostic indicates the problem can be corrected with an option.  Cannot be suppressed.
304 Corrupt object file, code Integer, symbol=String A PC-lint/FlexeLint object file is apparently corrupted.  Please delete the object module and recreate it using the -oo option. See §7.3 "Producing a LOB".  The special code identifier number as well as a list of symbol names are optionally suffixed to the message as an aid in diagnosing the problem by technical support. Cannot be suppressed.
305 Unable to open module 'file name' file name is the name of the file.  The named module could not be opened for reading. Perhaps you misspelled the name.  Cannot be suppressed.
306 Previously encountered module 'FileName' FileName is the name of the module.  The named module was previously encountered. This is probably a user blunder.  May be suppressed.
307 Can't open indirect file 'FileName' FileName is the name of the indirect file.  The named indirect file (ending in .lnt) could not be opened for reading.  Cannot be suppressed.
308 Can't write to standard out stdout was found to equal NULL. This is most unusual.  Cannot be suppressed.
309 #error ... The #error directive was encountered.  The ellipsis reflects the original line.  Normally processing is terminated at this point.  If you set the fce (continue on #error) flag, processing will continue.  May be suppressed.
310 Declaration too long: 'String...' A single declaration was found to be too long for an internal buffer (about 2000 characters).  This occurred when attempting to write out the declaration using the -o... option.  The first 30 characters of the declaration is given in String.  Typically this is caused by a very long struct whose substructures, if any, are untagged. First identify the declaration that is causing the difficulty. If a struct or union, assign a tag to any unnamed substructures or subunion.  A typedef can also be used to reduce the size of such a declaration.  Cannot be suppressed.
312 Lint Object Module has obsolete or foreign version id A lint object module was produced with a prior or different version of PC-lint/FlexeLint.  Delete the.lob file and recreate it using your new version of PC-lint/FlexeLint.  Cannot be suppressed.
313 Too many files The number of files that PC-lint/FlexeLint can process has exceeded an internal limit.  The FlexeLint user may recompile his system to increase this limit.  Look for symbol FSETLEN in custom.h.  Currently, the number of files is limited to 4096.  Cannot be suppressed.
314 Previously used .lnt file: FileName The indirect file named was previously encountered.  If this was not an accident, you may suppress this message.  May be suppressed.
315 Exceeded message limit (see -limit) The maximum number of messages was exceeded.  Normally there is no limit unless one is imposed by the -limit(n) option.  (See §5.7 "Other Options".)  Cannot be suppressed.
316 Error while writing to file "file name" The given file could not be opened for output.  Cannot be suppressed.
321 Declaration stack overflow An overflow occurred in the stack used to contain array, pointer, function or reference modifiers when processing a declarator.  Cannot be suppressed.
322 Unable to open include file FileName FileName is the name of the include file which could not be opened.  Directory search is controlled by options:  -i (see §5.7 "Other Options"), +fdi (§5.5 "Flag Options") and the INCLUDE environment variable.  This is a suppressible fatal message.  If option -e322 is used, Error message 7 will kick in.  A diagnostic will be issued but processing will continue.  May be suppressed.
323 Token String too long In attempting to save a token for later reuse, a fixed size buffer was exceeded (governed by the size M_TOKEN).  Cannot be suppressed.
324 Too many symbols Integer Too many symbols were encountered. An internal limit was reached.  Cannot be suppressed.
325 Cannot re-open file 'file name' In the case of a large number of nested includes, files in the outer fringe need to be closed before new ones are opened.  These outer files then need to be re-opened.  An error occurred when attempting to re-open such a file.  Cannot be suppressed.
326 String 'String ...' too long, exceeds Integer characters A string (first 40 characters provided in the message) exceeds some internal limit (provided in the message).  There is no antidote to this condition in the form of an option.  FlexeLint customers may recompile with a redefinition of either M_STRING (maximum string) or M_NAME (maximum name).  To override the definition in custom.h we suggest recompiling with an appropriate -dvar=value option assuming your compiler supports the option.  Cannot be suppressed.
401 symbol 'Symbol' not previously declared static at Location The indicated Symbol declared static was previously declared without the static storage class.  This is technically a violation of the ANSI standard. Some compilers will accept this situation without complaint and regard the Symbol as static.
402 static function 'Symbol' (Location) not defined The named Symbol was declared as a static function in the current module and was referenced but was not defined (in the module).
403 static symbol 'Symbol' has unusual type modifier Some type modifiers such as _export are inconsistent with the static storage class.
404 struct not completed within file 'FileName' A struct (or union or enum) definition was started within a header file but was not completed within the same header file.
405 #if not closed off within file 'FileName' An #if construct was begun within a header file (name given) but was not completed within that header file.  Was this intentional?
406 Comment not closed off within file 'FileName' A comment was begun within a header file (name given) but was not completed within that header file.  Was this intentional?
407 Inconsistent use of tag 'Symbol' conflicts with Location A tag specified as a union, struct or enum was respecified as being one of the other two in the same module. For example:
  
  struct tag *p;
  union tag *q;
 
will elicit this message.
408 Type mismatch with switch expression The expression within a case does not agree exactly with the type within the switch expression.  For example, an enumerated type is matched against an int.
409 Expecting a pointer or array An expression of the form i[...] was encountered where i is an integral expression.  This could be legitimate depending on the subscript operand.  For example, if i is an int and a is an array then i[a] is legitimate but unusual. If this is your coding style, suppress this message.
410 size_t not what was expected from fzl and/or fzu, using 'Type' This warning is issued if you had previously attempted to set the type of sizeof by use of the options +fzl, -fzl, or -fzu, and a later size_t declaration contradicts the setting.  This usually means you are attempting to lint programs for another system using header files for your own system.  If this is the case we suggest you create a directory housing header files for that foreign system, alter size_t within that directory, and lint using that directory.
411 ptrdiff_t not what was expected from fdl option, using 'Type' This warning is issued if you had previously attempted to set the type of pointer differences by use of the fdl option and a later ptrdiff_t declaration contradicts the setting.  See suggestion in Error Message 410.
412 Ambiguous format specifier '%X' The format specifier %X when used with one of the scanf family, is ambiguous.  With Microsoft C it means %lx whereas in ANSI C it has the meaning of %x.  This ambiguous format specification has no place in any serious C program and should be replaced by one of the above.
413 Likely use of null pointer 'Symbol' in [left/right] argument to operator 'String' Reference From information gleaned from earlier statements, it appears certain that a null pointer (a pointer whose value is 0) has been used in a context where null pointers are inappropriate.  These include:  Unary *, pointer increment (++) or decrement(--), addition of pointer to numeric, and subtraction of two pointers.  In the case of binary operators, one of the words 'left' or 'right' is used to designate which operand is null.  Symbol identifies the pointer variable that may be null.  See also messages 613 and 794, and §9.2 "Value Tracking".
414 Possible division by 0 The second argument to either the division operator (/) or the modulus operator (%) may be zero. Information is taken from earlier statements including assignments, initialization and tests.  See §9.2 "Value Tracking".
415 access of out-of-bounds pointer ('Integer' beyond end of data) by operator 'String' An out-of-bounds pointer was accessed. String designates the operator.  The parameter 'Integer' gives some idea how far out of bounds the pointer may be.  It is measured in units given by the size of the pointed to object. The value is relative to the last item of good data and therefore should always be greater than zero.  For example:
 
  int a[10];
  a[10] = 0;
 
results in an overflow message containing the phrase '1 beyond end of data'.  See §9.2 "Value Tracking".
416 creation of out-of-bounds pointer ('Integer' beyond end of data) by operator 'String' An out-of-bounds pointer was created. See message 415 for a description of the parameters Integer and String.  For example:
 
  int a[10];
 
    ...
  f( a + 11 );
 
Here, an illicit pointer value is created and is flagged as such by PC-lint/FlexeLint.  Note that the pointer a+10 is not considered by PC-lint/FlexeLint to be the creation of an out-of-bounds pointer.  This is because ANSI C explicitly allows pointing just beyond an array.  Access through a+10, however, as in *(a+10) or the more familiar a[10], would be considered erroneous but in that case message 415 would be issued.  See §9.2 "Value Tracking".
417 integral constant 'String' longer than long long int The longest possible integer is by default 8 bytes (see the +fll flag and then the -sll# option).  An integral constant was found to be even larger than such a quantity.  For example: 0xFFFF0000FFFF0000F.  String is the token in error.
418 Passing null pointer to function 'Symbol', Context Reference A NULL pointer is being passed to a function identified by Symbol.  The argument in question is given by Context.  The function is either a library function designed not to receive a NULL pointer or a user function dubbed so via the option -function.  See §10.1 "Function Mimicry" and §10.2.1 "Possible Semantics".
419 Apparent data overrun for function 'Symbol', argument Integer exceeds argument Integer This message is for data transfer functions such as memcpy, strcpy, fgets, etc. when the size indicated by the first cited argument (or arguments) exceeds the size of the buffer area cited by the second.  The message may also be issued for user functions via the -function option.  See §10.1 "Function Mimicry" and §10.2.1 "Possible Semantics".
420 Apparent access beyond array for function 'Symbol', argument Integer exceeds Integer Reference This message is issued for several library functions (such as fwrite, memcmp, etc.) wherein there is an apparent attempt to access more data than exist.  For example, if the length of data specified in the fwrite call exceeds the size of the data specified.  The function is specified by Symbol and the arguments are identified by argument number.  See also §10.1 "Function Mimicry" and §10.2.1 "Possible Semantics".
421 Caution - function 'Symbol' is considered dangerous This message is issued (by default) for the built-in function gets. This function is considered dangerous because there is no mechanism to ensure that the buffer provided as first argument will not overflow.  A well known computer virus (technically a worm) was created based on this defect.  Through the -function option, the user may designate other functions as dangerous.
422 Passing to function 'Symbol' a negative value (Integer), Context Reference An integral value that appears to be negative is being passed to a function that is expecting only positive values for a particular argument.  The message contains the name of the function (Symbol), the questionable value (Integer) and the argument number (Context).  The function may be a standard library function designed to accept only positive values such as malloc or memcpy (third argument), or may have been identified by the user as such through the -function or -sem options.
 
The negative integral value may in fact be unsigned.  Thus:
 
  void *malloc( unsigned );
  void f()
  {