http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56231
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |lto
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2013-02-07
CC| |rguenth at gcc dot gnu.org,
| |tromey at redhat dot com
Ever Confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-07
10:52:15 UTC ---
Hmm, I'm not sure how the include stack works. I suppose the reason may be
that we use
if (file_change)
{
if (prev_file)
linemap_add (line_table, LC_LEAVE, false, NULL, 0);
linemap_add (line_table, LC_ENTER, false, data_in->current_file,
data_in->current_line);
}
instead of LC_RENAME (but I'm quite positive we can't detect
"the #include directive" or "the end of the file" in any meaningful way).
Tom, can you shed some light on this? Can we simply always use LC_RENAME?
Matt, can you try
Index: gcc/lto-streamer-in.c
===================================================================
--- gcc/lto-streamer-in.c (revision 195841)
+++ gcc/lto-streamer-in.c (working copy)
@@ -164,13 +164,8 @@ lto_input_location (struct bitpack_d *bp
data_in->current_col = bp_unpack_var_len_unsigned (bp);
if (file_change)
- {
- if (prev_file)
- linemap_add (line_table, LC_LEAVE, false, NULL, 0);
-
- linemap_add (line_table, LC_ENTER, false, data_in->current_file,
- data_in->current_line);
- }
+ linemap_add (line_table, LC_RENAME, false, data_in->current_file,
+ data_in->current_line);
else if (line_change)
linemap_line_start (line_table, data_in->current_line,
data_in->current_col);
?