On Mon, Aug 17, 2015 at 12:06:08PM +0200, Marek Polacek wrote: > On Sun, Aug 16, 2015 at 06:14:18PM -0700, Gary Funck wrote: > > > > While reviewing some code, I noticed that the logic for > > pretty-printing 'restrict' qualifiers is likely missing a > > statement that sets 'previous'. > > > > OK to commit? > > > > 2015-08-l6 Gary Funck <g...@intrepid.com> > > > > * c-pretty-print.c (pp_c_cv_qualifiers): > > Set 'previous' for restrict qualifiers. > > > > Index: c-pretty-print.c > > =================================================================== > > --- c-pretty-print.c (revision 226928) > > +++ c-pretty-print.c (working copy) > > @@ -207,16 +207,17 @@ pp_c_cv_qualifiers (c_pretty_printer *pp > > } > > > > if (qualifiers & TYPE_QUAL_RESTRICT) > > { > > if (previous) > > pp_c_whitespace (pp); > > pp_c_ws_string (pp, (flag_isoc99 && !c_dialect_cxx () > > ? "restrict" : "__restrict__")); > > + previous = true; > > No, I don't think this assignment is missing here. The restrict qualifier > is printed last so we don't need to mark that we've printed something. > > Actually, the whole "previous" flag seems to be redundant; pp_c_ws_string > calls pp_c_maybe_whitespace so it prints a whitespace if necessary. > > So I suggest the following instead (haven't tested it yet).
Now regtested/bootstrapped on x86_64-linux. Jason/Joseph, ok? > 2015-08-17 Marek Polacek <pola...@redhat.com> > > * c-pretty-print.c (pp_c_cv_qualifiers): Remove code dealing > with whitespaces before qualifier names. > > diff --git gcc/c-family/c-pretty-print.c gcc/c-family/c-pretty-print.c > index 90f8c3d..e2809cf 100644 > --- gcc/c-family/c-pretty-print.c > +++ gcc/c-family/c-pretty-print.c > @@ -173,7 +173,6 @@ void > pp_c_cv_qualifiers (c_pretty_printer *pp, int qualifiers, bool func_type) > { > const char *p = pp_last_position_in_text (pp); > - bool previous = false; > > if (!qualifiers) > return; > @@ -185,34 +184,14 @@ pp_c_cv_qualifiers (c_pretty_printer *pp, int > qualifiers, bool func_type) > pp_c_whitespace (pp); > > if (qualifiers & TYPE_QUAL_ATOMIC) > - { > - pp_c_ws_string (pp, "_Atomic"); > - previous = true; > - } > - > + pp_c_ws_string (pp, "_Atomic"); > if (qualifiers & TYPE_QUAL_CONST) > - { > - if (previous) > - pp_c_whitespace (pp); > - pp_c_ws_string (pp, func_type ? "__attribute__((const))" : "const"); > - previous = true; > - } > - > + pp_c_ws_string (pp, func_type ? "__attribute__((const))" : "const"); > if (qualifiers & TYPE_QUAL_VOLATILE) > - { > - if (previous) > - pp_c_whitespace (pp); > - pp_c_ws_string (pp, func_type ? "__attribute__((noreturn))" : > "volatile"); > - previous = true; > - } > - > + pp_c_ws_string (pp, func_type ? "__attribute__((noreturn))" : > "volatile"); > if (qualifiers & TYPE_QUAL_RESTRICT) > - { > - if (previous) > - pp_c_whitespace (pp); > - pp_c_ws_string (pp, (flag_isoc99 && !c_dialect_cxx () > - ? "restrict" : "__restrict__")); > - } > + pp_c_ws_string (pp, (flag_isoc99 && !c_dialect_cxx () > + ? "restrict" : "__restrict__")); > } > > /* Pretty-print T using the type-cast notation '( type-name )'. */ > > Marek Marek