On Wed, 29 Dec 2010 02:30:37 +0100, Ted Unangst wrote:
> On Tue, Dec 28, 2010 at 6:59 PM, Tim van der Molen <[email protected]> wrote:
> > So, to conclude, what I would like to propose is the following:
> > * Hide from lint the va_copy() macro in <stdarg.h>.
> > * Add a lint-friendly va_copy() macro to
> >  /usr/src/sys/arch/*/include/stdarg.h.
> 
> Does adding a lint friendly __va_copy to arch/stdarg.h work?

It does indeed. In fact, some of the stdarg.h headers (e.g. powerpc)
take this approach. Here is a diff for the remaining headers.

Regards,
Tim

Index: sys/arch/alpha/include/stdarg.h
===================================================================
RCS file: /cvs/src/sys/arch/alpha/include/stdarg.h,v
retrieving revision 1.11
diff -u sys/arch/alpha/include/stdarg.h
--- sys/arch/alpha/include/stdarg.h     23 Oct 2008 21:25:07 -0000      1.11
+++ sys/arch/alpha/include/stdarg.h     29 Dec 2010 15:34:10 -0000
@@ -45,6 +45,7 @@
 
 #ifdef lint
 #define        va_start(ap,lastarg)    ((ap) = (ap))
+#define        __va_copy(dst, src)     ((dst) = (src))
 #else
 #define        va_start(ap, last) \
        (__builtin_next_arg(last), (ap) = *(va_list *)__builtin_saveregs(), 
(ap).pad = 0)
Index: sys/arch/amd64/include/stdarg.h
===================================================================
RCS file: /cvs/src/sys/arch/amd64/include/stdarg.h,v
retrieving revision 1.6
diff -u sys/arch/amd64/include/stdarg.h
--- sys/arch/amd64/include/stdarg.h     23 Oct 2008 21:25:07 -0000      1.6
+++ sys/arch/amd64/include/stdarg.h     29 Dec 2010 15:34:10 -0000
@@ -49,6 +49,7 @@
 
 #ifdef lint
 #define        va_start(ap,lastarg)    ((ap) = (ap))
+#define        __va_copy(dst, src)     ((dst) = (src))
 #else
 #define        va_start(ap, last) \
        ((ap) = (va_list)&(last) + __va_size(last))
Index: sys/arch/hppa/include/stdarg.h
===================================================================
RCS file: /cvs/src/sys/arch/hppa/include/stdarg.h,v
retrieving revision 1.9
diff -u sys/arch/hppa/include/stdarg.h
--- sys/arch/hppa/include/stdarg.h      23 Oct 2008 21:25:07 -0000      1.9
+++ sys/arch/hppa/include/stdarg.h      29 Dec 2010 15:34:10 -0000
@@ -41,6 +41,7 @@
 
 #ifdef lint
 #define        va_start(ap,lastarg)    ((ap) = (ap))
+#define        __va_copy(dst, src)     ((dst) = (src))
 #else
 #define        va_start(ap,lastarg)    ((ap) = (va_list)__builtin_saveregs())
 #endif /* lint */
Index: sys/arch/hppa64/include/stdarg.h
===================================================================
RCS file: /cvs/src/sys/arch/hppa64/include/stdarg.h,v
retrieving revision 1.6
diff -u sys/arch/hppa64/include/stdarg.h
--- sys/arch/hppa64/include/stdarg.h    23 Oct 2008 21:25:07 -0000      1.6
+++ sys/arch/hppa64/include/stdarg.h    29 Dec 2010 15:34:10 -0000
@@ -41,6 +41,7 @@
 
 #ifdef lint
 #define        va_start(ap,lastarg)    ((ap) = (ap))
+#define        __va_copy(dst, src)     ((dst) = (src))
 #else
 #define        va_start(ap,lastarg)    ((ap) = (va_list)__builtin_saveregs())
 #endif /* lint */
Index: sys/arch/i386/include/stdarg.h
===================================================================
RCS file: /cvs/src/sys/arch/i386/include/stdarg.h,v
retrieving revision 1.13
diff -u sys/arch/i386/include/stdarg.h
--- sys/arch/i386/include/stdarg.h      23 Oct 2008 21:25:07 -0000      1.13
+++ sys/arch/i386/include/stdarg.h      29 Dec 2010 15:34:10 -0000
@@ -45,6 +45,7 @@
 
 #ifdef lint
 #define        va_start(ap,lastarg)    ((ap) = (ap))
+#define        __va_copy(dst, src)     ((dst) = (src))
 #else
 #define va_start(ap, last) \
        ((ap) = (va_list)__builtin_next_arg(last))
Index: sys/arch/sparc64/include/stdarg.h
===================================================================
RCS file: /cvs/src/sys/arch/sparc64/include/stdarg.h,v
retrieving revision 1.7
diff -u sys/arch/sparc64/include/stdarg.h
--- sys/arch/sparc64/include/stdarg.h   23 Oct 2008 21:25:08 -0000      1.7
+++ sys/arch/sparc64/include/stdarg.h   29 Dec 2010 15:34:10 -0000
@@ -57,6 +57,7 @@
 
 #ifdef lint
 #define        va_start(ap,lastarg)    ((ap) = (ap))
+#define        __va_copy(dst, src)     ((dst) = (src))
 #else
 #define        va_start(ap, last) \
        (__builtin_next_arg(last), (ap) = (va_list)__builtin_saveregs())

Reply via email to