This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Bug in va_* macros for sparc-sun-solaris2.6
- To: egcs-bugs at cygnus dot com
- Subject: Bug in va_* macros for sparc-sun-solaris2.6
- From: Adam Fedor <fedor at doc dot com>
- Date: Thu, 16 Jul 1998 10:32:46 -0400
- Organization: Digital Optics Corp
- References: <35AE0899.8C6BF8C@doc.com>
RE: Bug in va_* macros - incorrect output of char argument
MACHINE: sparc-sun-solaris2.6, sparc-sun-solaris2.5.1, sparc-sun-sunos-4.1.4
COMPILER: egcs-1.0.1, gcc-2.8.0, gcc-2.8.1, gcc-2.7.2.3
The following test file illustrates a bug in sparc gcc. The output here is for
egcs-1.0.1, but the bug also appears in gcc-2.8.1, gcc-2.7.2.3 and egcs-1.0.1
for sparc-sun-sunos-4.1.4, and others...
The actual output is:
% gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.6/egcs-2.90.23/specs
gcc version egcs-2.90.23 980102 (egcs-1.0.1 release)
% gcc test-va.c
% ./a.out
<20>
<0>
%
While the correct output is:
% ./a.out
<20>
<21>
%
----- test file ----
#include <stdio.h>
#include <stdarg.h>
void * print(char x,...);
void *
print(char x,...)
{
char y, z;
va_list ap;
y = x;
printf("<%d>\n", y);
va_start(ap, x);
z = va_arg(ap, char);
printf("<%d>\n", z);
va_end(ap);
return NULL;
}
int
main()
{
print((char)20, (char)21);
return 0;
}
--
Adam Fedor | Those who can't do, simulate
Digital Optics Co. |
fedor@doc.com (MIME) |------------------------------
fedor@gnu.org