aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/tree-pretty-print.c
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
committerBen Cheng <bccheng@google.com>2014-04-22 13:33:12 -0700
commite3cc64dec20832769406aa38cde83c7dd4194bf4 (patch)
treeef8e39be37cfe0cb69d850043b7924389ff17164 /gcc-4.9/gcc/tree-pretty-print.c
parentf33c7b3122b1d7950efa88067c9a156229ba647b (diff)
downloadtoolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.gz
toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.tar.bz2
toolchain_gcc-e3cc64dec20832769406aa38cde83c7dd4194bf4.zip
[4.9] GCC 4.9.0 official release refresh
Change-Id: Ic99a7da8b44b789a48aeec93b33e93944d6e6767
Diffstat (limited to 'gcc-4.9/gcc/tree-pretty-print.c')
-rw-r--r--gcc-4.9/gcc/tree-pretty-print.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/tree-pretty-print.c b/gcc-4.9/gcc/tree-pretty-print.c
index 7ec4223d9..83d5ca62d 100644
--- a/gcc-4.9/gcc/tree-pretty-print.c
+++ b/gcc-4.9/gcc/tree-pretty-print.c
@@ -3365,6 +3365,25 @@ percent_K_format (text_info *text)
gcc_assert (pp_ti_abstract_origin (text) != NULL);
block = TREE_BLOCK (t);
*pp_ti_abstract_origin (text) = NULL;
+
+ if (in_lto_p)
+ {
+ /* ??? LTO drops all BLOCK_ABSTRACT_ORIGINs apart from those
+ representing the outermost block of an inlined function.
+ So walk the BLOCK tree until we hit such a scope. */
+ while (block
+ && TREE_CODE (block) == BLOCK)
+ {
+ if (inlined_function_outer_scope_p (block))
+ {
+ *pp_ti_abstract_origin (text) = block;
+ break;
+ }
+ block = BLOCK_SUPERCONTEXT (block);
+ }
+ return;
+ }
+
while (block
&& TREE_CODE (block) == BLOCK
&& BLOCK_ABSTRACT_ORIGIN (block))
@@ -3446,6 +3465,12 @@ pp_double_int (pretty_printer *pp, double_int d, bool uns)
pp_wide_integer (pp, d.low);
else if (d.fits_uhwi ())
pp_unsigned_wide_integer (pp, d.low);
+ else if (HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT)
+ pp_scalar (pp,
+ uns
+ ? HOST_WIDEST_INT_PRINT_UNSIGNED : HOST_WIDEST_INT_PRINT_DEC,
+ (HOST_WIDEST_INT) ((((unsigned HOST_WIDEST_INT) d.high << 1)
+ << (HOST_BITS_PER_WIDE_INT - 1)) | d.low));
else
{
unsigned HOST_WIDE_INT low = d.low;