freebsd-dev/sys
Poul-Henning Kamp b7a652ab84 I have no idea what this is all about, but it works and Bruce hasn't
complained so it cannot be entirely bad :-)

I include the email that probably explains it for people who already know:

> >Compiling with -O3 inlines functions.  However the function that is being
> >inlined in makeinfo.c (add_word_args()) is a vararg function and must not be
> >inlined.
> >
> >The code in question is K&R style, and AFIK, there is no way for the compiler
> >to determine that the function uses vararg.  Either change the code to use
> >prototypes, or use stdarg, or add a directive to prevent inlining.
>
> Not declaring a varargs function as varargs before it is used gives
> undefined behaviour.
>
> However, in practice the bug is probably in FreeBSD's <varargs.h>, which
> doesn't use gcc's __builtin_next_arg().  gcc should notice that it is
> used and not inline functions that have it.  <stdarg.h.> uses it, but I
> think there's another gcc builtin that it should be using.

Patch attached.  The ellipsis causes gcc to flag this as a varargs function,
and the name "__builtin_va_alist" is special cased in gcc to hide the last
argument in the arglist.

Reviewed by:	bde & phk
Submitted by:	jlemon@americantv.com (Jonathan Lemon)
1997-02-07 20:22:15 +00:00
..
alpha Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
amd64 I have no idea what this is all about, but it works and Bruce hasn't 1997-02-07 20:22:15 +00:00
compat/linux Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
compile
conf The worm(4) driver needs a bdev major # now, too. 1997-02-06 22:20:33 +00:00
ddb Fixed printing of small offsets. E.g., -4(%ebp) is now printed 1997-01-16 11:27:11 +00:00
dev Fixed missing ioport offset from the reading/updating of the PLX 1997-02-05 22:19:18 +00:00
fs Change the map entry flags from bitfields to bitmasks. Allows 1997-01-16 04:16:22 +00:00
geom Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
gnu Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
i386 I have no idea what this is all about, but it works and Bruce hasn't 1997-02-07 20:22:15 +00:00
isa Fix for the Compaq Armada laptop. 1997-02-07 11:41:45 +00:00
isofs/cd9660 Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
kern Fixed EXTRAVNODES ifdef. 1997-01-27 12:48:15 +00:00
libkern Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
miscfs Change the map entry flags from bitfields to bitmasks. Allows 1997-01-16 04:16:22 +00:00
modules Make ibcs2 a little bit saver. Add copyright. 1997-02-02 14:40:38 +00:00
msdosfs Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
net Make sure we have arguments to pass before calling ifaof_ifpforaddr 1997-02-04 03:14:35 +00:00
netatalk Convert the interface address and IP interface address structures 1996-12-13 21:29:07 +00:00
netinet Don't zero ip->ip_sum during sum validation. This should only 1997-02-06 11:14:22 +00:00
netipx Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
netkey This is the `netkey' kernel key-management service (the PF_KEY analogue 1996-06-14 17:22:18 +00:00
netns Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
nfs Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
nfsclient Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
nfsserver Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
pc98 Moved macros which are related to BIOS work area from pc98.h 1997-02-07 19:07:43 +00:00
pccard Deleted obsolete structure, pc98_device. 1997-02-04 22:29:50 +00:00
pci Fixed missing ioport offset from the reading/updating of the PLX 1997-02-05 22:19:18 +00:00
powerpc/include Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
rpc Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
scsi After so many people have been bugging me :), finally implement 1997-02-06 22:19:44 +00:00
sys Correct comments relating to MAXLOGNAME. 1997-02-07 10:41:41 +00:00
tools Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
ufs Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
vm Another fix to inheriting shared segments. Do the copy on write 1997-01-31 04:10:41 +00:00
Makefile Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00