diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-11-25 12:16:27 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-11-25 12:16:27 +0100 |
commit | 43ba1c6c3e34491f68ecb02973928c218790c66c (patch) | |
tree | 70b27f1af29f225e53043edda3753f7cc5c539fd /libcpp | |
parent | e302f8154aa9bd4a8a86e1f063d4e1d6956e8eae (diff) | |
download | gcc-43ba1c6c3e34491f68ecb02973928c218790c66c.zip gcc-43ba1c6c3e34491f68ecb02973928c218790c66c.tar.gz gcc-43ba1c6c3e34491f68ecb02973928c218790c66c.tar.bz2 |
re PR preprocessor/60436 (C preprocessor segfaults on assembly file)
PR preprocessor/60436
* line-map.c (linemap_line_start): If highest is above 0x60000000
and we are still tracking columns or highest is above 0x70000000,
force add_map.
From-SVN: r218042
Diffstat (limited to 'libcpp')
-rw-r--r-- | libcpp/ChangeLog | 7 | ||||
-rw-r--r-- | libcpp/line-map.c | 10 |
2 files changed, 12 insertions, 5 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 49f374d..e04130a 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,10 @@ +2014-11-25 Jakub Jelinek <jakub@redhat.com> + + PR preprocessor/60436 + * line-map.c (linemap_line_start): If highest is above 0x60000000 + and we are still tracking columns or highest is above 0x70000000, + force add_map. + 2014-11-20 Uros Bizjak <ubizjak@gmail.com> PR target/63966 diff --git a/libcpp/line-map.c b/libcpp/line-map.c index aff0294..39c057f 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -529,10 +529,10 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, && line_delta * ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) > 1000) || (max_column_hint >= (1U << ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map))) || (max_column_hint <= 80 - && ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) >= 10)) - { - add_map = true; - } + && ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) >= 10) + || (highest > 0x60000000 + && (set->max_column_hint || highest > 0x70000000))) + add_map = true; else max_column_hint = set->max_column_hint; if (add_map) @@ -543,7 +543,7 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, /* If the column number is ridiculous or we've allocated a huge number of source_locations, give up on column numbers. */ max_column_hint = 0; - if (highest >0x70000000) + if (highest > 0x70000000) return 0; column_bits = 0; } |