🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #1180

gcc bug

#1180
From: Marc Bassini
Date: Fri, 09 Oct 1992 20:42
44 lines
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!marc

Show 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