* xcoffread.c (process_linenos): Make sure filename we pass to
authorJim Kingdon <jkingdon@engr.sgi.com>
Fri, 17 Mar 1995 00:41:40 +0000 (00:41 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Fri, 17 Mar 1995 00:41:40 +0000 (00:41 +0000)
start_subfile will cause deduce_language_from_filename to return
the correct thing.  Reindent function to GNU standards.

gdb/xcoffread.c

index 368f1c5..7ee6794 100644 (file)
@@ -529,17 +529,16 @@ process_linenos (start, end)
   char *pp;
   int offset, ii;
 
-  struct subfile main_subfile;         /* subfile structure for the main
-                                          compilation unit. */
+  /* subfile structure for the main compilation unit.  */
+  struct subfile main_subfile;
 
-  /* in the main source file, any time we see a function entry, we reset
-     this variable to function's absolute starting line number. All the
-     following line numbers in the function are relative to this, and
-     we record absolute line numbers in record_line(). */
+  /* In the main source file, any time we see a function entry, we
+     reset this variable to function's absolute starting line number.
+     All the following line numbers in the function are relative to
+     this, and we record absolute line numbers in record_line().  */
 
   int main_source_baseline = 0;
 
-  
   unsigned *firstLine;
   CORE_ADDR addr;
 
@@ -555,126 +554,146 @@ process_linenos (start, end)
     enter_line_range (&main_subfile, offset, 0, start, end, 
                                                &main_source_baseline);
 
-  /* else, there was source with line numbers in include files */
-  else {
-
-    main_source_baseline = 0;
-    for (ii=0; ii < inclIndx; ++ii) {
-
-      struct subfile *tmpSubfile;
+  else
+    {
+      /* There was source with line numbers in include files.  */
+      main_source_baseline = 0;
+      for (ii=0; ii < inclIndx; ++ii)
+       {
+         struct subfile *tmpSubfile;
 
-      /* if there is main file source before include file, enter it. */
-      if (offset < inclTable[ii].begin) {
-       enter_line_range
-         (&main_subfile, offset, inclTable[ii].begin - LINESZ, start, 0, 
-                                               &main_source_baseline);
-      }
+         /* If there is main file source before include file, enter it.  */
+         if (offset < inclTable[ii].begin)
+           {
+             enter_line_range
+               (&main_subfile, offset, inclTable[ii].begin - LINESZ,
+                start, 0, &main_source_baseline);
+           }
 
-      /* Have a new subfile for the include file */
+         /* Have a new subfile for the include file.  */
 
-      tmpSubfile = inclTable[ii].subfile = (struct subfile*) 
-                               xmalloc (sizeof (struct subfile));
+         tmpSubfile = inclTable[ii].subfile =
+           (struct subfile *) xmalloc (sizeof (struct subfile));
 
-      memset (tmpSubfile, '\0', sizeof (struct subfile));
-      firstLine = &(inclTable[ii].funStartLine);
+         memset (tmpSubfile, '\0', sizeof (struct subfile));
+         firstLine = &(inclTable[ii].funStartLine);
 
-      /* enter include file's lines now. */
-      enter_line_range (tmpSubfile, inclTable[ii].begin, 
-                               inclTable[ii].end, start, 0, firstLine);
+         /* Enter include file's lines now.  */
+         enter_line_range (tmpSubfile, inclTable[ii].begin, 
+                           inclTable[ii].end, start, 0, firstLine);
 
-      offset = inclTable[ii].end + LINESZ;
-    }
+         offset = inclTable[ii].end + LINESZ;
+       }
 
-    /* all the include files' line have been processed at this point. Now,
-       enter remaining lines of the main file, if any left. */
-    if (offset < (linetab_offset + linetab_size + 1 - LINESZ)) {
-      enter_line_range (&main_subfile, offset, 0, start, end, 
-                                               &main_source_baseline);
+      /* All the include files' line have been processed at this point.  Now,
+        enter remaining lines of the main file, if any left.  */
+      if (offset < (linetab_offset + linetab_size + 1 - LINESZ))
+       {
+         enter_line_range (&main_subfile, offset, 0, start, end, 
+                           &main_source_baseline);
+       }
     }
-  }
 
-  /* Process main file's line numbers. */
-  if (main_subfile.line_vector) {
-    struct linetable *lineTb, *lv;
+  /* Process main file's line numbers.  */
+  if (main_subfile.line_vector)
+    {
+      struct linetable *lineTb, *lv;
 
-    lv = main_subfile.line_vector;
+      lv = main_subfile.line_vector;
 
-    /* Line numbers are not necessarily ordered. xlc compilation will
-       put static function to the end. */
+      /* Line numbers are not necessarily ordered. xlc compilation will
+        put static function to the end. */
 
-    lineTb = arrange_linetable (lv);
-    if (lv == lineTb) {
-      current_subfile->line_vector = (struct linetable *)
-       xrealloc (lv, (sizeof (struct linetable)
-                       + lv->nitems * sizeof (struct linetable_entry)));
+      lineTb = arrange_linetable (lv);
+      if (lv == lineTb)
+       {
+         current_subfile->line_vector = (struct linetable *)
+           xrealloc (lv, (sizeof (struct linetable)
+                          + lv->nitems * sizeof (struct linetable_entry)));
+       }
+      else
+       {
+         free (lv);
+         current_subfile->line_vector = lineTb;
+       }
 
+      current_subfile->line_vector_length = 
+       current_subfile->line_vector->nitems;
     }
-    else {
-       free (lv);
-       current_subfile->line_vector = lineTb;
-    }
-
-    current_subfile->line_vector_length = 
-                       current_subfile->line_vector->nitems;
-  }
 
-    /* Now, process included files' line numbers. */
+  /* Now, process included files' line numbers.  */
 
-    for (ii=0; ii < inclIndx; ++ii) {
+  for (ii=0; ii < inclIndx; ++ii)
+    {
+      if ((inclTable[ii].subfile)->line_vector) /* Useless if!!! FIXMEmgo */
+       {
+         struct linetable *lineTb, *lv;
 
-      if ( (inclTable[ii].subfile)->line_vector) { /* Useless if!!! FIXMEmgo */
-        struct linetable *lineTb, *lv;
+         lv = (inclTable[ii].subfile)->line_vector;
 
-        lv = (inclTable[ii].subfile)->line_vector;
+         /* Line numbers are not necessarily ordered. xlc compilation will
+            put static function to the end. */
 
-        /* Line numbers are not necessarily ordered. xlc compilation will
-           put static function to the end. */
+         lineTb = arrange_linetable (lv);
 
-        lineTb = arrange_linetable (lv);
+         push_subfile ();
 
-       push_subfile ();
+         /* For the same include file, we might want to have more than one
+            subfile.  This happens if we have something like:
 
-       /* For the same include file, we might want to have more than one subfile.
-          This happens if we have something like:
-   
                ......
                #include "foo.h"
                ......
                #include "foo.h"
                ......
 
-          while foo.h including code in it. (stupid but possible)
-          Since start_subfile() looks at the name and uses an existing one if finds,
-          we need to provide a fake name and fool it. */
+            while foo.h including code in it. (stupid but possible)
+            Since start_subfile() looks at the name and uses an
+            existing one if finds, we need to provide a fake name and
+            fool it.  */
 
-/*     start_subfile (inclTable[ii].name, (char*)0);  */
-       start_subfile (" ?", (char*)0);
-       free (current_subfile->name);
-       current_subfile->name = strdup (inclTable[ii].name);
+#if 0
+         start_subfile (inclTable[ii].name, (char*)0);
+#else
+         {
+           /* Pick a fake name that will produce the same results as this
+              one when passed to deduce_language_from_filename.  Kludge on
+              top of kludge.  */
+           char *fakename = strrchr (inclTable[ii].name, '.');
+           if (fakename == NULL)
+             fakename = " ?";
+           start_subfile (fakename, (char*)0);
+           free (current_subfile->name);
+         }
+         current_subfile->name = strdup (inclTable[ii].name);
+#endif
 
-        if (lv == lineTb) {
-         current_subfile->line_vector = (struct linetable *)
-               xrealloc (lv, (sizeof (struct linetable)
+         if (lv == lineTb)
+           {
+             current_subfile->line_vector =
+               (struct linetable *) xrealloc
+                 (lv, (sizeof (struct linetable)
                        + lv->nitems * sizeof (struct linetable_entry)));
 
-       }
-       else {
-         free (lv);
-         current_subfile->line_vector = lineTb;
-       }
+           }
+         else
+           {
+             free (lv);
+             current_subfile->line_vector = lineTb;
+           }
 
-       current_subfile->line_vector_length = 
-                       current_subfile->line_vector->nitems;
-       start_subfile (pop_subfile (), (char*)0);
-      }
+         current_subfile->line_vector_length = 
+           current_subfile->line_vector->nitems;
+         start_subfile (pop_subfile (), (char*)0);
+       }
     }
 
-return_after_cleanup:
+ return_after_cleanup:
 
-  /* We don't want to keep alloc/free'ing the global include file table. */
+  /* We don't want to keep alloc/free'ing the global include file table.  */
   inclIndx = 0;
 
-  /* start with a fresh subfile structure for the next file. */
+  /* Start with a fresh subfile structure for the next file.  */
   memset (&main_subfile, '\0', sizeof (struct subfile));
 }