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);





?

Reply via email to