[newlib] print formats for FAST and LEAST types

Corinna Vinschen vinschen@redhat.com
Fri Jul 24 15:50:00 GMT 2015

On Jul 24 11:21, Andre Vieira wrote:
> On 23/07/15 20:43, Corinna Vinschen wrote:
> >Hi Andre,
> >
> >On Jul 23 11:28, Andre Vieira wrote:
> >>The PRI and SCN macro's were producing formats that did not match their
> >>target types set by GCC. This patch uses the types defined for
> >>__INTxx_TYPE__, __INT_FASTxx_TYPE__ and __INT_LEASTxx_TYPE__ to define their
> >>corresponding macros.
> >>
> >>newlib/ChangeLog:
> >>2015-07-23  Andre Vieira  <...>
> >>
> >>   * libc/include/sys/_intsup.h: Defined new __INTxx, __FASTxx and
> >>   _LEASTxx macro's to hold information regarding the respective types
> >>   print and scan formats.
> >>   * libc/include/inttypes.h: Defined LEAST and FAST specific PRI and SCN
> >>   macro's as these are not always the same as the INT variants. Used
> >>   the new
> >>   __INTxx, __FASTxx and __LEASTxx macro's in their corresponding PRI
> >>   and SCN macros.
> >
> >I gave your patch a quick glance and it looks basically ok to me.
> >I'll review it more thorougly tomorrow (I hope), but I have a question:
> >
> >How did you test your patch?
> >
> >
> >Thanks,
> >Corinna
> >
> Hi Corinna,
> That is a very good question. To be honest with you I ran gcc and newlib
> regression tests and did a manual test on one machine. As I was about to
> send you the manual patch I noticed I forgot to change the SCN16(x) define.
> So I'll respin this patch for you and I'll also give testing a bit more
> thinking.
> There is no straightforward way of testing this I think. Though I will try
> to create a sensible sscanf/sprintf test and get back to you. Suggestions
> are welcome.

Some simple testcase which allows easy manual inspection of the results
would do, I guess.  You know, output in rows, kind of like

  typename      basetype    printf macro    scanf macro
  int32_t       int         "d"             "d"
  int16fast_t   long        "ld"            "ld"

If you have a chance to test on, say, 2 platforms, I'd add inspection on
32 and 64 bit Cygwin.  That should allow to be reasonable sure that the
patch doesn't break any platform.


Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20150724/bd23e9b2/attachment.sig>

More information about the Newlib mailing list