Hi,

vmsdbgout could generate buggy records for long path.  This happened while 
cross-compiling.

Committed on trunk.

Tristan.

2011-04-21  Tristan Gingold  <ging...@adacore.com>

        * vmsdbgout.c (write_srccorr): Compute file length from the string.
        (dst_file_info_struct): Remove flen field.
        (lookup_filename): Remove code that set flen field.

Index: gcc/vmsdbgout.c
===================================================================
--- gcc/vmsdbgout.c     (revision 172821)
+++ gcc/vmsdbgout.c     (working copy)
@@ -71,7 +71,6 @@
   long ebk;
   short ffb;
   char rfo;
-  char flen;
 }
 dst_file_info_entry;
 
@@ -932,7 +931,7 @@
   int src_command_size;
   int linesleft = file_info_entry.max_line;
   int linestart = file_info_entry.listing_line_start;
-  int flen = file_info_entry.flen;
+  int flen = strlen (file_info_entry.file_name);
   int linestodo = 0;
   DST_SOURCE_CORR src_header;
   DST_SRC_COMMAND src_command;
@@ -977,7 +976,7 @@
   src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_b_src_df_rms_rfo
     = file_info_entry.rfo;
   src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_b_src_df_filename
-    = file_info_entry.flen;
+    = flen;
 
   src_header.dst_a_source_corr_header.dst__header_length.dst_w_length
     = DST_K_SOURCE_CORR_HEADER_SIZE + src_command_size - 1;
@@ -1332,7 +1331,6 @@
   register char *fn;
   register unsigned i;
   const char *fnam;
-  char flen;
   long long cdt = 0;
   long ebk = 0;
   short ffb = 0;
@@ -1341,7 +1339,6 @@
   int ver = 0;
 
   fnam = full_name (file_name);
-  flen = strlen (fnam);
 
   /* Check to see if the file name that was searched on the previous call
      matches this file name. If so, return the index.  */
@@ -1386,7 +1383,6 @@
   file_info_table[file_info_table_in_use].ebk = ebk;
   file_info_table[file_info_table_in_use].ffb = ffb;
   file_info_table[file_info_table_in_use].rfo = rfo;
-  file_info_table[file_info_table_in_use].flen = flen;
 
   last_file_lookup_index = file_info_table_in_use++;
   return last_file_lookup_index;

Reply via email to