http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53023

--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> 2012-04-17 20:19:34 
UTC ---
This patch sets file_table_last_lookup:

diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 7e2ce58..d5783c2 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -20043,13 +20043,15 @@ lookup_filename (const char *file_name)
   /* Didn't match the previous lookup, search the table.  */
   slot = htab_find_slot_with_hash (file_table, file_name,
                    htab_hash_string (file_name), INSERT);
-  if (*slot)
-    return (struct dwarf_file_data *) *slot;
-
-  created = ggc_alloc_dwarf_file_data ();
-  created->filename = file_name;
-  created->emitted_number = 0;
-  *slot = created;
+  created = (struct dwarf_file_data *) *slot;
+  if (!created)
+    {
+      created = ggc_alloc_dwarf_file_data ();
+      created->filename = file_name;
+      created->emitted_number = 0;
+      *slot = created;
+    }
+  file_table_last_lookup = created;
   return created;
 }

Reply via email to