On Jan 5, 2017, Andreas Schwab <sch...@linux-m68k.org> wrote: > On Jan 05 2017, Alexandre Oliva <aol...@redhat.com> wrote: >> On Jan 5, 2017, Andreas Schwab <sch...@linux-m68k.org> wrote: >> >>> On Jan 05 2017, Alexandre Oliva <aol...@redhat.com> wrote: >>>> - sprintf (xname, "<U%4x>", ((unsigned)((uintptr_t)(t) & 0xffff))); >>>> + sprintf (xname, "<U%4hx>", ((unsigned short)((uintptr_t)(t) & >>>> 0xffff))); >> >>> Please fix the spacing while you are at it. >> >> Err... I sure would, if I knew what fix you had in mind. Care to share >> your thoughts? Thanks,
> Space after cast. Wow, thanks, I think I never got that one right. Here's what I'm installing, also breaking the now-too-long line: In stage2 of bootstrap-O1, the code that warns if sprintf might overflow its output buffer cannot tell that an unsigned value narrowed to 16 bits will fit in 4 bytes with %4x. Converting the value to 'unsigned short' makes it obvious that it fits, at least on machines with 16-bit shorts. for gcc/c-family/ChangeLog * c-pretty-print.c (pp_c_tree_decl_identifier): Convert 16-bit value to unsigned short to fit in 4 hex digits without warnings. --- gcc/c-family/c-pretty-print.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/c-family/c-pretty-print.c b/gcc/c-family/c-pretty-print.c index 90428ca..2908669 100644 --- a/gcc/c-family/c-pretty-print.c +++ b/gcc/c-family/c-pretty-print.c @@ -2400,7 +2400,8 @@ pp_c_tree_decl_identifier (c_pretty_printer *pp, tree t) else { static char xname[8]; - sprintf (xname, "<U%4x>", ((unsigned)((uintptr_t)(t) & 0xffff))); + sprintf (xname, "<U%4hx>", ((unsigned short) ((uintptr_t) (t) + & 0xffff))); name = xname; } -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer