How to de-lint files
-
bitwise operand on signed value possibly non-portable [117]
Try to do the same with an unsigned variable. ANSI C does not guarantee the results of any shifts where the left hand side operand is not an unsigned int.
-
argument foo unused in function bar [231]
If it's not a real error, use
/* ARGSUSEDn */
to tell lint how many arguments to check (n being that number). -
possible pointer alignment problem [135]
If lint is overzealous, you can avoid the warning by a void cast:
p = (foo *)(void *)q
. You should do that only if you are certain that the pointer is aligned, otherwise you will be masking real bugs. -
pointer casts may be troublesome [247]
If lint is overzealous, you can avoid the warning by a void cast:
p = (foo *)(void *)q
. -
conversion from '[unsigned ][long ]long'
may lose accuracy [132]
If you're sure the accuracy loss is acceptable, cast the variable to the new type. Another tactic is to use an additional [unsigned] [long] long variable for intermediate calculations and only cast the result at the end.
-
cast discards 'const' from pointer target type [275]
If you're sure it's okay, add a
/* LINTED const cast-away */
above the line producing the warning. -
extra bits set to 0 in
conversion of 'unsigned int' to 'unsigned long long', op & [309]
One case where this happens is when you logically combine (in this case with &) some long value with a constant, which is int by default. In this case, you can fix it by making the constant a long, too:
long & 0xffffffff -> long & 0x00000000ffffffffULL
-
macro `macroname' used with too
many (N) args
The macro is invoked with an argument (such as a #define) which has a comment with a comma (`,') in it. Ensure that the macro arguments are appropriately wrapped with parenthesis in the macro body.
Back to NetBSD Developer Documentation