aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcpp/ChangeLog6
-rw-r--r--libcpp/line-map.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 8af9846..fa2fa7d 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-18 Martin Liska <mliska@suse.cz>
+
+ PR c++/89383
+ * line-map.c (linemap_line_start): Use 1UL in order
+ to not overflow.
+
2019-02-11 Martin Liska <mliska@suse.cz>
PR lto/88147
diff --git a/libcpp/line-map.c b/libcpp/line-map.c
index 0e30b4b..b73f506 100644
--- a/libcpp/line-map.c
+++ b/libcpp/line-map.c
@@ -745,7 +745,8 @@ linemap_line_start (struct line_maps *set, linenum_type to_line,
|| ( /* We can't reuse the map if the line offset is sufficiently
large to cause overflow when computing location_t values. */
(to_line - ORDINARY_MAP_STARTING_LINE_NUMBER (map))
- >= (1U << (CHAR_BIT * sizeof (linenum_type) - column_bits)))
+ >= (((uint64_t) 1)
+ << (CHAR_BIT * sizeof (linenum_type) - column_bits)))
|| range_bits < map->m_range_bits)
map = linemap_check_ordinary
(const_cast <line_map *>