On Fri, Jan 13, 2017 at 09:15:22AM +0100, Richard Biener wrote:
> > @@ -1710,6 +1716,24 @@ dump_generic_node (pretty_printer *pp, t
> >       print_hex (val, pp_buffer (pp)->digit_buffer);
> >       pp_string (pp, pp_buffer (pp)->digit_buffer);
> >     }
> > +      if ((flags & TDF_GIMPLE)
> > +     && (POINTER_TYPE_P (TREE_TYPE (node))
> > +         || (TYPE_PRECISION (TREE_TYPE (node))
> > +             < TYPE_PRECISION (integer_type_node))
> > +         || exact_log2 (TYPE_PRECISION (TREE_TYPE (node))) == -1))
> > +   {
> > +     if (TYPE_UNSIGNED (TREE_TYPE (node)))
> > +       pp_character (pp, 'u');
> > +     if (TYPE_PRECISION (TREE_TYPE (node))
> > +         == TYPE_PRECISION (unsigned_type_node))
> > +       ;
> > +     else if (TYPE_PRECISION (TREE_TYPE (node))
> > +              == TYPE_PRECISION (long_unsigned_type_node))
> > +       pp_character (pp, 'l');
> > +     else if (TYPE_PRECISION (TREE_TYPE (node))
> > +              == TYPE_PRECISION (long_long_unsigned_type_node))
> > +       pp_string (pp, "ll");
> > +   }

Not sure if I understand this.  The outer if condition says that only the
sub-int or strange precision or pointer types do that, but then
you compare the precisions against long and long long.  That will be
true only for pointers.  Don't you want the u/l/ll/ul/ull suffixes emitted
for integers even when they have normal precision and _Literal is not used?
Or is that handled somewhere else?

        Jakub

Reply via email to