aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-in.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-06-09 00:10:35 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2015-06-08 22:10:35 +0000
commit44433db051a923a6e32baa8e448ec8cf5a88f5f8 (patch)
treef78b68891e4e416d52e41263d2ee4dd14d689473 /gcc/lto-streamer-in.c
parent13fdf2e2d578e629c456873c3a24bd0b2255c226 (diff)
downloadgcc-44433db051a923a6e32baa8e448ec8cf5a88f5f8.zip
gcc-44433db051a923a6e32baa8e448ec8cf5a88f5f8.tar.gz
gcc-44433db051a923a6e32baa8e448ec8cf5a88f5f8.tar.bz2
lto-streamer-out.c (lto_output_location): Stream reserved locations correctly.
* lto-streamer-out.c (lto_output_location): Stream reserved locations correctly. * lto-streamer-in.c (lto_output_location): Likewise. From-SVN: r224251
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r--gcc/lto-streamer-in.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index b4070de..7729b6c 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -272,12 +272,13 @@ lto_location_cache::input_location (location_t *loc, struct bitpack_d *bp,
gcc_assert (current_cache == this);
- if (bp_unpack_value (bp, 1))
- {
- *loc = UNKNOWN_LOCATION;
- return;
- }
- *loc = BUILTINS_LOCATION + 1;
+ *loc = bp_unpack_int_in_range (bp, "location", 0, RESERVED_LOCATION_COUNT);
+
+ if (*loc < RESERVED_LOCATION_COUNT)
+ return;
+
+ /* Keep value RESERVED_LOCATION_COUNT in *loc as linemap lookups will
+ ICE on it. */
file_change = bp_unpack_value (bp, 1);
line_change = bp_unpack_value (bp, 1);