On Thu, 11 Mar 1999, Bruce Evans wrote:

> >I want to make this change to printf so that it treats format codes like
> >'%llx' as 64bit formats (i.e. the same as '%qx').  This convention is the
> >same as that used by glibc.
> 
> %llx is actually for unsigned long longs, and %qx is actually for 
> u_quad_t's.  These types are different for FreeBSD on alphas.  Printing
> quad_t's using %llx should cause warnings from gcc -Wformat on alphas,
> but printing them using %qx should work.  I think gcc -Wformat doesn't
> actually understand %q formats, so printing quad_t's using %qx gives
> bogus warnings on alphas.
> 
> However, %llx is more standard.  It is in the C9x draft.  %qx should go
> away.

Ok.

> 
> >Index: vfprintf.c
> >===================================================================
> >RCS file: /home/ncvs/src/lib/libc/stdio/vfprintf.c,v
> >retrieving revision 1.20
> >diff -u -r1.20 vfprintf.c
> >--- vfprintf.c       1998/09/16 04:17:44     1.20
> >+++ vfprintf.c       1999/02/20 10:20:08
> >@@ -545,7 +545,10 @@
> >                     flags |= SHORTINT;
> >                     goto rflag;
> >             case 'l':
> >-                    flags |= LONGINT;
> >+                    if (flags & LONGINT)
> >+                            flags |= QUADINT;
> >+                    else
> >+                            flags |= LONGINT;
> >                     goto rflag;
> >             case 'q':
> >                     flags |= QUADINT;
> >@@ -1016,7 +1019,10 @@
> >                     flags |= SHORTINT;
> >                     goto rflag;
> >             case 'l':
> >-                    flags |= LONGINT;
> >+                    if (flags & LONGINT)
> >+                            flags |= QUADINT;
> >+                    else
> >+                            flags |= LONGINT;
> >                     goto rflag;
> >             case 'q':
> >                     flags |= QUADINT;
> 
> This assumes that long longs have the same representation as quad_t's.
> I suppose not doing a global change from quad_t to long long is best,
> because the change should actually be to C9x's intmax_t to support C9x's
> %m formats.

So is the patch correct enough to commit then?

--
Doug Rabson                             Mail:  d...@nlsystems.com
Nonlinear Systems Ltd.                  Phone: +44 181 442 9037




To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to