diff options
author | Martin Liska <mliska@suse.cz> | 2019-02-18 10:46:19 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-02-18 09:46:19 +0000 |
commit | a5f87af7edff53d77f51ba253da42dbfc74ada58 (patch) | |
tree | f51cf0bf3c676fa8957800bbdfdc02e623a870d1 | |
parent | 469b4adb4fec2b61caee16ed982f5fab333e784b (diff) | |
download | gcc-a5f87af7edff53d77f51ba253da42dbfc74ada58.zip gcc-a5f87af7edff53d77f51ba253da42dbfc74ada58.tar.gz gcc-a5f87af7edff53d77f51ba253da42dbfc74ada58.tar.bz2 |
Use 1UL constant in order to not overflow (PR c++/89383).
2019-02-18 Martin Liska <mliska@suse.cz>
PR c++/89383
* line-map.c (linemap_line_start): Use 1UL in order
to not overflow.
From-SVN: r268981
-rw-r--r-- | libcpp/ChangeLog | 6 | ||||
-rw-r--r-- | libcpp/line-map.c | 3 |
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 *> |