dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
authorNathan Froyd <froydnj@codesourcery.com>
Wed, 25 Oct 2006 13:31:21 +0000 (13:31 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Wed, 25 Oct 2006 13:31:21 +0000 (13:31 +0000)
        * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
        (file_table_relative_p): Likewise.
        (dwarf2out_finish): Likewise.
        (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.

From-SVN: r118033

gcc/ChangeLog
gcc/dwarf2out.c

index 1e997657b5aca0549b1a134e92773a4c4409fbcf..d6849155d18eda4a638c294ce0df43d79fb506b3 100644 (file)
@@ -1,3 +1,10 @@
+2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
+
+        * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
+        (file_table_relative_p): Likewise.
+        (dwarf2out_finish): Likewise.
+        (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
+
 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
 
        * tree-ssa-structalias.c (intra_create_variable_infos):
index 0b655b44d51214df691c495e8ed76a524f28e77e..6c714f9f384d5b0b1ec7f328c17ddf31011c1ca1 100644 (file)
@@ -7657,7 +7657,7 @@ file_name_acquire (void ** slot, void *data)
 
   /* Skip all leading "./".  */
   f = d->filename;
-  while (f[0] == '.' && f[1] == '/')
+  while (f[0] == '.' && IS_DIR_SEPARATOR (f[1]))
     f += 2;
   
   /* Create a new array entry.  */
@@ -7666,7 +7666,19 @@ file_name_acquire (void ** slot, void *data)
   fi->file_idx = d;
   
   /* Search for the file name part.  */
-  f = strrchr (f, '/');
+  f = strrchr (f, DIR_SEPARATOR);
+#if defined (DIR_SEPARATOR_2)
+  {
+    char *g = strrchr (files[i].path, DIR_SEPARATOR_2);
+
+    if (g != NULL)
+      {
+       if (f == NULL || f < g)
+         f = g;
+      }
+  }
+#endif
+
   fi->fname = f == NULL ? fi->path : f + 1;
   return 1;
 }
@@ -12288,7 +12300,7 @@ gen_compile_unit_die (const char *filename)
     {
       add_name_attribute (die, filename);
       /* Don't add cwd for <built-in>.  */
-      if (filename[0] != DIR_SEPARATOR && filename[0] != '<')
+      if (!IS_ABSOLUTE_PATH (filename) && filename[0] != '<')
        add_comp_dir_attribute (die);
     }
 
@@ -14188,7 +14200,7 @@ file_table_relative_p (void ** slot, void *param)
 {
   bool *p = param;
   struct dwarf_file_data *d = *slot;
-  if (d->emitted_number && d->filename[0] != DIR_SEPARATOR)
+  if (d->emitted_number && !IS_ABSOLUTE_PATH (d->filename))
     {
       *p = true;
       return 0;
@@ -14208,7 +14220,7 @@ dwarf2out_finish (const char *filename)
   /* Add the name for the main input file now.  We delayed this from
      dwarf2out_init to avoid complications with PCH.  */
   add_name_attribute (comp_unit_die, filename);
-  if (filename[0] != DIR_SEPARATOR)
+  if (!IS_ABSOLUTE_PATH (filename))
     add_comp_dir_attribute (comp_unit_die);
   else if (get_AT (comp_unit_die, DW_AT_comp_dir) == NULL)
     {