Article View: gnu.gcc.bug
Article #1180gcc bug
From: Marc Bassini
Date: Fri, 09 Oct 1992 20:42
Date: Fri, 09 Oct 1992 20:42
44 lines
1605 bytes
1605 bytes
VERSION:2.2.2
INPUT: #include <stdarg.h>
foo(char *const bar, ...)
{
va_list ap;
va_start(ap, bar);
char *tmp;
while ((tmp = va_arg(ap, char *const)) != (char *const) NULL)
{}
va_end(ap);
}
The following macro is extracted from:
gcc-lib/sparc-sun-sunos4.1/2.2.2/include/va-sparc.h:
#define va_arg(pvar,TYPE) \
__extension__ \
({ TYPE __va_temp; \
((__builtin_classify_type (__va_temp) >= 12) \
? ((pvar) += __va_rounded_size (TYPE *), \
**(TYPE **) ((pvar) - __va_rounded_size (TYPE *))) \
: __va_rounded_size (TYPE) == 8 \
? ({ union {TYPE d; int i[2];} u; \
u.i[0] = ((int *) (pvar))[0]; \
u.i[1] = ((int *) (pvar))[1]; \
(pvar) += 8; \
u.d; }) \
: ((pvar) += __va_rounded_size (TYPE), \
*((TYPE *) ((pvar) - __va_rounded_size (TYPE)))));})
ARGUMENTS: -g -c
MACHINE: sparc elc running SunOS Release 4.1.1
OPERANDS: sparc-sun-sunos4.1
INPUT doesn't work because when TYPE is const, __va_temp needs
initialization.
Marc Bassini (marc@ccv.fr, marc@cnam.cnam.fr)
Computers, Communications & Visions (C2V)
82 bd Haussmann, 75008 Paris FRANCE
Phone 40.08.07.07, Fax 43.87.35.99
Technical Details
Message-ID:
<9210091842.AA09155@jekyll.ccv>Path:
arc1-ca.pugleaf.net!sparky!uunet!usc!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!ccv.FR!marcShow Full Headers
Complete Article Headers
Newsgroups: gnu.gcc.bug Path: arc1-ca.pugleaf.net!sparky!uunet!usc!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!ccv.FR!marc From: marc@ccv.FR (Marc Bassini) Subject: gcc bug Message-ID: <9210091842.AA09155@jekyll.ccv> Sender: gnulists@ai.mit.edu Organization: GNUs Not Usenet Distribution: gnu Date: Fri, 9 Oct 1992 20:42:21 GMT Approved: bug-gcc@prep.ai.mit.edu Lines: 45