Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 May 2003 15:12:46 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 30885 for review
Message-ID:  <200305092212.h49MCkkp096431@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=30885

Change 30885 by peter@peter_hammer on 2003/05/09 15:12:05

	Provide a fake stdarg implementation for lint's benefit so
	that it can see how it is supposed to work.  lint doesn't know
	that this is totally bogus though (and doesn't need to).

Affected files ...

.. //depot/projects/hammer/sys/amd64/include/_types.h#4 edit
.. //depot/projects/hammer/sys/amd64/include/stdarg.h#3 edit

Differences ...

==== //depot/projects/hammer/sys/amd64/include/_types.h#4 (text+ko) ====

@@ -96,7 +96,11 @@
 /*
  * Unusual type definitions.
  */
+#if defined(__GNUC__)
 typedef	__builtin_va_list	__va_list;	/* internally known to gcc */
+#elif defined(lint)
+typedef	char *			__va_list;	/* pretend */
+#endif
 #if defined __GNUC__ && !defined(__GNUC_VA_LIST) && !defined(__NO_GNUC_VA_LIST)
 #define	__GNUC_VA_LIST
 typedef	__va_list	__gnuc_va_list;		/* compatibility w/GNU headers*/

==== //depot/projects/hammer/sys/amd64/include/stdarg.h#3 (text+ko) ====

@@ -39,6 +39,7 @@
 typedef	__va_list	va_list;
 #endif
 
+#if defined(__GNUC__)
 #define	va_start(ap, last) \
 	__builtin_stdarg_start((ap), (last))
 
@@ -53,4 +54,16 @@
 #define	va_end(ap) \
 	__builtin_va_end(ap)
 
+#elif defined(lint)
+/* Provide a fake implementation for lint's benefit */
+#define	__va_size(type) \
+	(((sizeof(type) + sizeof(long) - 1) / sizeof(long)) * sizeof(long))
+#define	va_start(ap, last) \
+	((ap) = (va_list)&(last) + __va_size(last))
+#define	va_arg(ap, type) \
+	(*(type *)((ap) += __va_size(type), (ap) - __va_size(type)))
+#define	va_end(ap)
+
+#endif
+
 #endif /* !_MACHINE_STDARG_H_ */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305092212.h49MCkkp096431>