This is classical VARARGS thing..
With patch below the thing compiles and 'make test' succeeds.

$ gcc -v
Reading specs from /usr/lib/gcc-lib/alpha-redhat-linux/2.96/specs
gcc version 2.96 20000125 (experimental)


gcc -I.. -I../../include -mcpu=ev56 -O3 -DL_ENDIAN -DTERMIO   -c -o b_print.o b_print.c
b_print.c: In function `dopr':
b_print.c:295: `short int' is promoted to `int' when passed through `...'
b_print.c:295: (so you should pass `int' not `short int' to `va_arg')
b_print.c:319: `short unsigned int' is promoted to `int' when passed through `...'

$ cvs diff -u crypto/bio 
cvs diff: Diffing crypto/bio
Index: crypto/bio/b_print.c
===================================================================
RCS file: /home/mea/src/CVSROOT-OPENSSL/openssl/crypto/bio/b_print.c,v
retrieving revision 1.8
diff -u -r1.8 b_print.c
--- crypto/bio/b_print.c        2000/02/26 03:55:15     1.8
+++ crypto/bio/b_print.c        2000/02/27 22:13:40
@@ -292,7 +292,7 @@
             case 'i':
                 switch (cflags) {
                 case DP_C_SHORT:
-                    value = va_arg(args, short int);
+                    value = (short int)va_arg(args, int);
                     break;
                 case DP_C_LONG:
                     value = va_arg(args, long int);
@@ -315,8 +315,7 @@
                 flags |= DP_F_UNSIGNED;
                 switch (cflags) {
                 case DP_C_SHORT:
-                    value = va_arg(args,
-                        unsigned short int);
+                    value = (unsigned short int)va_arg(args, int);
                     break;
                 case DP_C_LONG:
                     value = (LLONG) va_arg(args,

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to