On Wed, Sep 28, 2016 at 09:28:14PM +0200, Bernd Schmidt wrote: > On 09/28/2016 09:24 PM, Jakub Jelinek wrote: > >I'd like to ping the > > > >http://gcc.gnu.org/ml/gcc-patches/2016-09/msg01436.html > > > >patch, containing various fixes for gimple-ssa-sprintf.c. > >If the 0 < var to var > 0 changes are deemed too controversial, I can > >separate them from the other changes. > > I'd like to see them separated because they are obvious and good, so please > install them first.
And here are the 0 < var to var > 0 changes. Thoughts on those? 2016-09-28 Jakub Jelinek <ja...@redhat.com> * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead of 0 < x. (format_floating, format_string, format_directive, get_destination_size, pass_sprintf_length::handle_gimple_call): Likewise. --- gcc/gimple-ssa-sprintf.c.jj 2016-09-21 08:54:15.000000000 +0200 +++ gcc/gimple-ssa-sprintf.c 2016-09-21 15:09:02.209261013 +0200 @@ -130,8 +130,8 @@ pass_sprintf_length::gate (function *) not optimizing and the pass is being invoked early, or when optimizing and the pass is being invoked during optimization (i.e., "late"). */ - return ((0 < warn_format_length || flag_printf_return_value) - && (0 < optimize) == fold_return_value); + return ((warn_format_length > 0 || flag_printf_return_value) + && (optimize > 0) == fold_return_value); } /* The result of a call to a formatted function. */ @@ -1188,7 +1188,7 @@ format_floating (const conversion_spec & case 'a': { /* The minimum output is "0x.p+0". */ - res.range.min = 6 + (0 < prec ? prec : 0); + res.range.min = 6 + (prec > 0 ? prec : 0); /* Compute the maximum just once. */ static const int a_max[] = { @@ -1249,7 +1249,7 @@ format_floating (const conversion_spec & gcc_unreachable (); } - if (0 < width) + if (width > 0) { if (res.range.min < (unsigned)width) res.range.min = width; @@ -1440,7 +1440,7 @@ get_string_length (tree str) static fmtresult format_string (const conversion_spec &spec, tree arg) { - unsigned width = spec.have_width && 0 < spec.width ? spec.width : 0; + unsigned width = spec.have_width && spec.width > 0 ? spec.width : 0; int prec = spec.have_precision ? spec.precision : -1; if (spec.star_width) @@ -1756,7 +1756,7 @@ format_directive (const pass_sprintf_len } else { - if (!res->warned && 0 < fmtres.range.min && navail < fmtres.range.min) + if (!res->warned && fmtres.range.min > 0 && navail < fmtres.range.min) { const char* fmtstr = (info.bounded @@ -2332,7 +2332,7 @@ get_destination_size (tree dest) a member array as opposed to the whole enclosing object), otherwise use type-zero object size to determine the size of the enclosing object (the function fails without optimization in this type). */ - int ost = 0 < optimize; + int ost = optimize > 0; unsigned HOST_WIDE_INT size; if (compute_builtin_object_size (dest, ost, &size)) return size; @@ -2648,7 +2640,8 @@ pass_sprintf_length::handle_gimple_call attempt to substitute the computed result for the return value of the call. Avoid this optimization when -frounding-math is in effect and the format string contains a floating point directive. */ - if (0 < optimize && flag_printf_return_value + if (optimize > 0 + && flag_printf_return_value && (!flag_rounding_math || !res.floating)) try_substitute_return_value (gsi, info, res); } Jakub