On Fri, 13 Jan 2017, Richard Biener wrote: > On Fri, 13 Jan 2017, Jakub Jelinek wrote: > > > 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? > > Oops, you are right - it shouldn't be the same condition that controls > whether to add _Literal (type). It should be the inverse. Maybe > we need to add suffixes anyway even for say 61bit precision constants > to avoid warnings from libcpp. > > I'll fix it up after testing a few cases.
Fixed as follows, bootstrapped / tested on x86_64-unknown-linux-gnu and committed with the GIMPLE_NOP parsing from the other patch. Richard. 2017-01-13 Richard Biener <rguent...@suse.de> * tree-pretty-print.c (dump_generic_node): Fix inverted condition for dumping GIMPLE INTEGER_CSTs. Index: gcc/tree-pretty-print.c =================================================================== --- gcc/tree-pretty-print.c (revision 244393) +++ gcc/tree-pretty-print.c (working copy) @@ -1717,10 +1717,10 @@ dump_generic_node (pretty_printer *pp, t 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)) + && ! (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');