]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/tree-streamer-in.c
Merge from trunk.
[thirdparty/gcc.git] / gcc / tree-streamer-in.c
index 560d4f8f4f7559cc456721a09e0abd4bca1c0c9c..a70c7670551a244be190e3ffd9e800d5a6d115d7 100644 (file)
@@ -147,8 +147,9 @@ unpack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
 static void
 unpack_ts_int_cst_value_fields (struct bitpack_d *bp, tree expr)
 {
-  TREE_INT_CST_LOW (expr) = bp_unpack_var_len_unsigned (bp);
-  TREE_INT_CST_HIGH (expr) = bp_unpack_var_len_int (bp);
+  int i;
+  for (i = 0; i < TREE_INT_CST_EXT_NUNITS (expr); i++)
+    TREE_INT_CST_ELT (expr, i) = bp_unpack_var_len_int (bp);
 }
 
 
@@ -568,6 +569,12 @@ streamer_alloc_tree (struct lto_input_block *ib, struct data_in *data_in,
       unsigned HOST_WIDE_INT len = streamer_read_uhwi (ib);
       result = make_tree_binfo (len);
     }
+  else if (CODE_CONTAINS_STRUCT (code, TS_INT_CST))
+    {
+      unsigned HOST_WIDE_INT len = streamer_read_uhwi (ib);
+      unsigned HOST_WIDE_INT ext_len = streamer_read_uhwi (ib);
+      result = make_int_cst (len, ext_len);
+    }
   else if (code == CALL_EXPR)
     {
       unsigned HOST_WIDE_INT nargs = streamer_read_uhwi (ib);