From ache@deep-thought.demos.su  Tue Jan 24 03:20:50 1995
Received: from deep-thought.demos.su (deep-thought.demos.su [192.91.186.133]) by freefall.cdrom.com (8.6.9/8.6.6) with ESMTP id DAA28338 for <FreeBSD-gnats-submit@freebsd.org>; Tue, 24 Jan 1995 03:20:41 -0800
Received: by deep-thought.demos.su id OAA06320;
  (8.6.9/D) Tue, 24 Jan 1995 14:19:18 +0300
Message-Id: <199501241119.OAA06320@deep-thought.demos.su>
Date: Tue, 24 Jan 1995 14:19:18 +0300
From: ache@astral.msk.su
To: FreeBSD-gnats-submit@freebsd.org
Subject: stdarg.h or gcc broken to handle non-int sized start arg
X-Send-Pr-Version: 3.2

>Number:         181
>Category:       gnu
>Synopsis:       stdarg or gcc broken to handle non-int sized start arg
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs (FreeBSD bugs mailing list)
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 24 03:30:01 1995
>Closed-Date:    Tue Jan 24 08:59:33 PST 1995
>Last-Modified:
>Originator:     Andrew A. Chernov;  Black Mage
>Release:        FreeBSD 2.1.0-Development i386
>Organization:
Ha-olahm Yetzirah
>Environment:

-current

>Description:

Try to run following example, it _must_ print 1234 and print
in all systems expect FreeBSD. Arg length is fatal: when commented
and uncommented lines flipped, it works, i.e. it works for
int-sized first argument. stdarg.h have some code to handle non-int
args in va_start, but it doesn't help here.

>How-To-Repeat:

#include <stdarg.h>

void f(unsigned char l, ...)
/*void f(int l, ...)*/
{
	va_list a;
	va_start(a, l);
	printf("%d\n", va_arg(a, int));
}
main() {
	f(0,1234);
}


>Fix:
	
Don't known. Probably stdarg.h promote macro needs to be fixed.
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: ache 
State-Changed-When: Tue Jan 24 08:59:33 PST 1995 
State-Changed-Why:  
stdarg.h fixed 
>Unformatted:



