lint does not understand the %m format, leading to false positives.  The 
too few format args is one of the important ones, IMO, so we should try to 
make it accurate.

The diff below teaches lint that %m does not consume arguments.

Index: lint2/chk.c
===================================================================
RCS file: /home/tedu/cvs/src/usr.bin/xlint/lint2/chk.c,v
retrieving revision 1.18
diff -u -r1.18 chk.c
--- lint2/chk.c 27 Jul 2010 20:07:56 -0000      1.18
+++ lint2/chk.c 18 Jun 2011 04:38:30 -0000
@@ -812,6 +812,11 @@
                        break;
                }
 
+               if (fc == 'm') {
+                       fc = *fp++;
+                       continue;
+               }
+
                if ((tp = *ap++) == NULL) {
                        tofewarg(hte, call);
                        break;

Reply via email to