diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-10-14 12:04:22 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-10-14 12:04:22 +0200 |
commit | 96c169e15643ebffb7144837a54c760331d91c21 (patch) | |
tree | 1d09c51355f1f205dbfff2b154b3beaa1ef84a15 /libcpp | |
parent | b29ee46cf2f0010084b621c1d2ec50bb5b6a8964 (diff) | |
download | gcc-96c169e15643ebffb7144837a54c760331d91c21.zip gcc-96c169e15643ebffb7144837a54c760331d91c21.tar.gz gcc-96c169e15643ebffb7144837a54c760331d91c21.tar.bz2 |
re PR preprocessor/41543 (BUILTINS_LOCATION wrong with -fpreprocessed)
PR preprocessor/41543
* input.h (BUILTINS_LOCATION): Change to 1 from 2.
Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
* tree.c: Include intl.h.
(expand_location): Handle BUILTINS_LOCATION.
* Makefile.in (tree.o): Depend on intl.h.
* include/line-map.h (RESERVED_LOCATION_COUNT): Define.
* line-map.c (linemap_init): Initialize highest_location and
highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
* gcc.dg/debug/dwarf2/pr41543.c: New test.
From-SVN: r152761
Diffstat (limited to 'libcpp')
-rw-r--r-- | libcpp/ChangeLog | 7 | ||||
-rw-r--r-- | libcpp/include/line-map.h | 5 | ||||
-rw-r--r-- | libcpp/line-map.c | 4 |
3 files changed, 14 insertions, 2 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 9d9556e..3259c56 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,10 @@ +2009-10-14 Jakub Jelinek <jakub@redhat.com> + + PR preprocessor/41543 + * include/line-map.h (RESERVED_LOCATION_COUNT): Define. + * line-map.c (linemap_init): Initialize highest_location and + highest_line to RESERVED_LOCATION_COUNT-1 instead of 0. + 2009-10-09 Jason Merrill <jason@redhat.com> * charset.c (_cpp_valid_ucn): Update C++0x restrictions. diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h index 31ac8e5..9e31a6a 100644 --- a/libcpp/include/line-map.h +++ b/libcpp/include/line-map.h @@ -143,6 +143,11 @@ extern const struct line_map *linemap_add extern const struct line_map *linemap_lookup (struct line_maps *, source_location); +/* source_location values from 0 to RESERVED_LOCATION_COUNT-1 will + be reserved for libcpp user as special values, no token from libcpp + will contain any of those locations. */ +#define RESERVED_LOCATION_COUNT 2 + /* Converts a map and a source_location to source line. */ #define SOURCE_LINE(MAP, LOC) \ ((((LOC) - (MAP)->start_location) >> (MAP)->column_bits) + (MAP)->to_line) diff --git a/libcpp/line-map.c b/libcpp/line-map.c index 553cc2a..a82c428 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -38,8 +38,8 @@ linemap_init (struct line_maps *set) set->trace_includes = false; set->depth = 0; set->cache = 0; - set->highest_location = 0; - set->highest_line = 0; + set->highest_location = RESERVED_LOCATION_COUNT - 1; + set->highest_line = RESERVED_LOCATION_COUNT - 1; set->max_column_hint = 0; set->reallocator = 0; } |