[Bug middle-end/78959] FAIL: gcc.c-torture/execute/pr78622.c

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jan 1 19:35:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78959

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2017-01-01
     Ever confirmed|0                           |1

--- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> ---
The test output

  "4105" => 4

indicates that on HP-UX the %hhd directive doesn't convert the int argument
(4105) to unsigned char to end up with 9 as the test expects.  I think that's a
bug in the HP-UX sprintf (do you have a way of reporting it and/or finding out
if HP will fix it?), although there is/was some uncertainty about whether
passing a value outside the range of char to %hhd is valid
(https://groups.google.com/forum/#!topic/comp.std.c/evMVFdOufys).

One way to way to deal with this in GCC might be to add a configure test to
detect the bug and adjust the byte count in the gimple-ssa-sprintf pass based
on its result.  Another might be to add a target hook describing the behavior
and making the pass conditional on it.  Or, if the code isn't considered valid
the test could simply be marked XFAIL on HP-UX.


More information about the Gcc-bugs mailing list