"correctly, but it causes problems for some preprocessors.",
0, 0
},
+ {
+ FK_COMMENTS, FK_SYNTAX, plainFlag,
+ "slashslashcomment",
+ FLG_SLASHSLASHCOMMENT,
+ "C++ style // comment",
+ "A C++ style // comment is used here. This type of comment has been officially supported in C99 and was often allowed by compiler extensions prior to this. However, some older C89 compilers are not able to handle these comments.",
+ 0, 0
+ },
{
FK_COMMENTS, FK_SYNTAX, plainFlag,
"nestcomment",
FLG_USERELEASED,
"storage used after release",
"Memory is used after it has been released (either by passing "
- "as an only param or assigning to and only global.",
+ "as an only param or assigning to an only global.",
0, 0
},
{
FLG_STRICTUSERELEASED,
"element used after it may have been released",
"Memory (through fetch) is used after it may have been released "
- "(either by passing as an only param or assigning to and only global.",
+ "(either by passing as an only param or assigning to an only global.",
0, 0
},
{
"LCLint has determined that the following statement is true after the function, ",
0, 0
},
+
+ {
+ FK_NT, FK_MEMORY, modeFlag,
+ "parenconstraint",
+ FLG_PARENCONSTRAINT,
+ "parenthesize constraint term",
+ "This flag is for debugging. This flag causes LCLint to fully parentheses constraints, ",
+ 0, 0
+ },
+
{
FK_NT, FK_MEMORY, modeFlag,
"debugfcnconstraint",
FLG_DEBUGFUNCTIONCONSTRAINT,
"debuging constraint flas",
- "This flag is for debuging. It causes lclint to perform buffer overflow checking even if the error will be surpressed. Normal buffer overflow checking will only be performed if errors would be printed. ",
+ "This flag is for debuging. It causes lclint to perform buffer overflow checking even if the errors would be surpressed. Normally buffer overflow checking will only be performed if the errors would be printed. ",
0, 0
},
{
FK_NT, FK_MEMORY, modeFlag,
- "arrayBounds",
+ "arraybounds",
FLG_ARRAYBOUNDS,
"Possible out-of-bounds store. Unable to resolve constraint:",
"LCLint was unable to resolve a constraint at the top of the function. If code is correct consider using explict annotation assertions, ",
},
{
FK_NT, FK_MEMORY, modeFlag,
- "arrayBoundsRead",
+ "arrayboundsread",
FLG_ARRAYBOUNDSREAD,
"Possible out-of-bounds read. Unable to resolve constraint:",
"LCLint was unable to resolve a constraint at the top of the function. If code is correct consider using explict annotation assertions, ",
"FLT_EPSILON or DBL_EPSILON.",
0, 0,
},
+ {
+ FK_OPS, FK_NONE, modeFlag,
+ "unsignedcompare",
+ FLG_UNSIGNEDCOMPARE,
+ "comparison using <, <=, >= between an unsigned integral and zero constant",
+ "An unsigned value is used in a comparison with zero in a way that is either a bug or confusing.",
+ 0, 0,
+ },
{
FK_OPS, FK_POINTER, modeFlag,
"ptrarith",
"Initializer does not set every field in the structure.",
0, 0
},
+ {
+ FK_TYPE, FK_NONE, plainFlag,
+ "initallelements",
+ FLG_INITALLELEMENTS,
+ "initializer defines all array elements",
+ "Initializer does not define all elements of a declared array.",
+ 0, 0
+ },
+ {
+ FK_TYPE, FK_NONE, plainFlag,
+ "initsize",
+ FLG_INITSIZE,
+ "initializer defines extra array elements",
+ "Initializer block contains more elements than the size of a declared array.",
+ 0, 0
+ },
+ {
+ FK_TYPE, FK_NONE, plainFlag,
+ "stringliteraltoolong",
+ FLG_STRINGLITTOOLONG,
+ "string literal too long for character array",
+ "A string literal is assigned to a char array too small to hold it.",
+ 0, 0
+ },
+ {
+ FK_TYPE, FK_NONE, modeFlag,
+ "stringliteralnoroom",
+ FLG_STRINGLITNOROOM,
+ "string literal leaves no room for null terminator",
+ "A string literal is assigned to a char array that is not big enough to hold the null terminator.",
+ 0, 0
+ },
+ {
+ FK_TYPE, FK_NONE, modeFlag,
+ "stringliteralsmaller",
+ FLG_STRINGLITSMALLER,
+ "string literal is smaller than the char array it is assigned to",
+ "A string literal is assigned to a char array that smaller than the string literal needs.",
+ 0, 0
+ },
{
FK_TYPE, FK_NONE, modeFlag,
"enummembers",
"Non-reentrant function should not be used in multithreaded code.",
0, 0
},
+ {
+ FK_WARNUSE, FK_SECURITY, modeFlag,
+ "portability",
+ FLG_PORTABILITY,
+ "function may have undefined behavior",
+ "Use of function that may have implementation-dependent behavior.",
+ 0, 0
+ },
+ {
+ FK_WARNUSE, FK_SECURITY, modeFlag,
+ "unixstandard",
+ FLG_UNIXSTANDARD,
+ "function is not required in Standard UNIX Specification",
+ "Use of function that need not be provided by UNIX implementations",
+ 0, 0
+ },
{
FK_WARNUSE, FK_SECURITY, modeFlag,
"superuser",
"Call to function restricted to superusers.",
0, 0
},
+ {
+ FK_WARNUSE, FK_SECURITY, modeFlag,
+ "implementationoptional",
+ FLG_IMPLEMENTATIONOPTIONAL,
+ "declarator is implementation optional (ISO99 does not require an implementation to provide it)",
+ "Use of a declarator that is implementation optional, not required by ISO99.",
+ 0, 0
+ },
} ;