From 892a371f3b8c8ce79f59540908a8660cfc07f880 Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Sun, 28 Aug 2011 20:14:46 +0000 Subject: Fix the use of linemap_add and remove unnecessary kludge libcpp/ * line-map.c (linemap_add): Assert that reason must not be LC_RENAME when called for the first time on a "main input file". c-family/ * c-pch.c (c_common_read_pch): Call linemap_add with LC_ENTER as it's the first time it's being called on this main TU. gcc/lto/ * lto-lang.c (lto_init): Likewise. Also, avoid calling linemap_add twice. gcc/fortran/ * scanner.c (load_file): Don't abuse LC_RENAME reason while (indirectly) calling linemap_add. From-SVN: r178146 --- libcpp/ChangeLog | 5 +++++ libcpp/line-map.c | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'libcpp') diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 8a5e899..4ecda03 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,8 @@ +2011-08-28 Dodji Seketeli + + * line-map.c (linemap_add): Assert that reason must not be + LC_RENAME when called for the first time on a "main input file". + 2011-08-22 Gabriel Charette * init.c (cpp_create_reader): Inititalize forced_token_location_p. diff --git a/libcpp/line-map.c b/libcpp/line-map.c index dd3f11c..2a0749a 100644 --- a/libcpp/line-map.c +++ b/libcpp/line-map.c @@ -114,11 +114,10 @@ linemap_add (struct line_maps *set, enum lc_reason reason, if (reason == LC_RENAME_VERBATIM) reason = LC_RENAME; - /* If we don't keep our line maps consistent, we can easily - segfault. Don't rely on the client to do it for us. */ - if (set->depth == 0) - reason = LC_ENTER; - else if (reason == LC_LEAVE) + if (set->depth == 0 && reason == LC_RENAME) + abort (); + + if (reason == LC_LEAVE) { struct line_map *from; bool error; -- cgit v1.1