Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jun 1997 02:00:02 -0700 (PDT)
From:      "Arne Henrik Juul" <arnej@math.ntnu.no>
To:        freebsd-bugs
Subject:   Re: bin/3884: stdarg.h fails for data types < 4 bytes
Message-ID:  <199706170900.CAA04342@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/3884; it has been noted by GNATS.

From: "Arne Henrik Juul" <arnej@math.ntnu.no>
To: Bruce Evans <bde@zeta.org.au>, arnej@mail.math.ntnu.no,
        FreeBSD-gnats-submit@FreeBSD.ORG
Cc:  Subject: Re: bin/3884: stdarg.h fails for data types < 4 bytes
Date: Tue, 17 Jun 1997 10:50:26 +0200

 On Jun 17, 13:37, Bruce Evans wrote:
 > Subject: Re: bin/3884: stdarg.h fails for data types < 4 bytes
 >
 > This is correct.
 
 I will argue that it is not.
 
 >  The behaviour is undefined when the type in va_arg()
 > does not match its default promotion.
 
 Correct but irrelevant.
 
 > >	Probably stdarg.h should
 > >	follow the conventions of the C compiler instead.
 >
 > Probably not.  Generating an error is useful for detecting unportable
 > code.  However, it would be better to generate the error at compile time,
 > and also detect float types (which happen to have the same size as their
 > default promotion on i386's) and on char and short types (which may
 > happen to have the same size as their default promotion on non-i386's).
 > I don't know how to do this without using a compiler builtin.
 
 We should probably ask for one, then :-)
 
 > >>How-To-Repeat:
 > >
 > >	Inspect <stdarg.h>, or compile and run the following test
 > >	program, gotten from c-torture.
 >
 > This program does not conform to standard C.
 
 If it used short, I would agree with you.  However, it uses a struct,
 and structs doesn't promote at all.  Therefore, the program is
 conforming (maybe even strictly conforming) Ansi C and must work.
 
   -  Arne H. J.



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