SYMTAB_DIRNAME: New macro.
authorDoug Evans <xdje42@gmail.com>
Tue, 18 Nov 2014 17:28:32 +0000 (09:28 -0800)
committerDoug Evans <xdje42@gmail.com>
Tue, 18 Nov 2014 17:28:32 +0000 (09:28 -0800)
gdb/ChangeLog:

* symtab.h (SYMTAB_DIRNAME): New macro.  All uses of member
symtab.dirname updated to use it.

gdb/ChangeLog
gdb/buildsym.c
gdb/cli/cli-cmds.c
gdb/jit.c
gdb/source.c
gdb/symmisc.c
gdb/symtab.h

index 9d7a846..b9dd637 100644 (file)
@@ -1,5 +1,10 @@
 2014-11-18  Doug Evans  <xdje42@gmail.com>
 
+       * symtab.h (SYMTAB_DIRNAME): New macro.  All uses of member
+       symtab.dirname updated to use it.
+
+2014-11-18  Doug Evans  <xdje42@gmail.com>
+
        * symtab.h (SYMTAB_OBJFILE): New macro.  All uses of member
        symtab.objfile updated to use it.
 
index 3ea8ff0..d0f0ddc 100644 (file)
@@ -1244,14 +1244,14 @@ end_symtab_with_blockvector (struct block *static_block,
       if (subfile->dirname)
        {
          /* Reallocate the dirname on the symbol obstack.  */
-         symtab->dirname =
+         SYMTAB_DIRNAME (symtab) =
            obstack_copy0 (&objfile->objfile_obstack,
                           subfile->dirname,
                           strlen (subfile->dirname));
        }
       else
        {
-         symtab->dirname = NULL;
+         SYMTAB_DIRNAME (symtab) = NULL;
        }
 
       /* Use whatever language we have been using for this
index 0c3cfa7..79246ac 100644 (file)
@@ -1486,21 +1486,23 @@ compare_symtabs (const void *a, const void *b)
 {
   const struct symtab_and_line *sala = a;
   const struct symtab_and_line *salb = b;
+  const char *dira = SYMTAB_DIRNAME (sala->symtab);
+  const char *dirb = SYMTAB_DIRNAME (salb->symtab);
   int r;
 
-  if (!sala->symtab->dirname)
+  if (dira == NULL)
     {
-      if (salb->symtab->dirname)
+      if (dirb != NULL)
        return -1;
     }
-  else if (!salb->symtab->dirname)
+  else if (dirb == NULL)
     {
-      if (sala->symtab->dirname)
+      if (dira != NULL)
        return 1;
     }
   else
     {
-      r = filename_cmp (sala->symtab->dirname, salb->symtab->dirname);
+      r = filename_cmp (dira, dirb);
       if (r)
        return r;
     }
index c12a72f..4810018 100644 (file)
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -645,7 +645,7 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
 
   symtab = allocate_symtab (stab->file_name, objfile);
   /* JIT compilers compile in memory.  */
-  symtab->dirname = NULL;
+  SYMTAB_DIRNAME (symtab) = NULL;
 
   /* Copy over the linetable entry if one was provided.  */
   if (stab->linetable)
index 894531a..0f69578 100644 (file)
@@ -659,8 +659,8 @@ source_info (char *ignore, int from_tty)
       return;
     }
   printf_filtered (_("Current source file is %s\n"), s->filename);
-  if (s->dirname)
-    printf_filtered (_("Compilation directory is %s\n"), s->dirname);
+  if (SYMTAB_DIRNAME (s) != NULL)
+    printf_filtered (_("Compilation directory is %s\n"), SYMTAB_DIRNAME (s));
   if (s->fullname)
     printf_filtered (_("Located in %s\n"), s->fullname);
   if (s->nlines)
@@ -1105,7 +1105,7 @@ open_source_file (struct symtab *s)
   if (!s)
     return -1;
 
-  return find_and_open_source (s->filename, s->dirname, &s->fullname);
+  return find_and_open_source (s->filename, SYMTAB_DIRNAME (s), &s->fullname);
 }
 
 /* Finds the fullname that a symtab represents.
@@ -1125,7 +1125,8 @@ symtab_to_fullname (struct symtab *s)
      to handle cases like the file being moved.  */
   if (s->fullname == NULL)
     {
-      int fd = find_and_open_source (s->filename, s->dirname, &s->fullname);
+      int fd = find_and_open_source (s->filename, SYMTAB_DIRNAME (s),
+                                    &s->fullname);
 
       if (fd >= 0)
        close (fd);
@@ -1137,10 +1138,11 @@ symtab_to_fullname (struct symtab *s)
          /* rewrite_source_path would be applied by find_and_open_source, we
             should report the pathname where GDB tried to find the file.  */
 
-         if (s->dirname == NULL || IS_ABSOLUTE_PATH (s->filename))
+         if (SYMTAB_DIRNAME (s) == NULL || IS_ABSOLUTE_PATH (s->filename))
            fullname = xstrdup (s->filename);
          else
-           fullname = concat (s->dirname, SLASH_STRING, s->filename, NULL);
+           fullname = concat (SYMTAB_DIRNAME (s), SLASH_STRING, s->filename,
+                              NULL);
 
          back_to = make_cleanup (xfree, fullname);
          s->fullname = rewrite_source_path (fullname);
index 623bcb3..323ebd5 100644 (file)
@@ -297,9 +297,9 @@ dump_symtab_1 (struct objfile *objfile, struct symtab *symtab,
 
   fprintf_filtered (outfile, "\nSymtab for file %s\n",
                    symtab_to_filename_for_display (symtab));
-  if (symtab->dirname)
+  if (SYMTAB_DIRNAME (symtab) != NULL)
     fprintf_filtered (outfile, "Compilation directory is %s\n",
-                     symtab->dirname);
+                     SYMTAB_DIRNAME (symtab));
   fprintf_filtered (outfile, "Read from object file %s (",
                    objfile_name (objfile));
   gdb_print_host_address (objfile, outfile);
@@ -753,7 +753,8 @@ maintenance_info_symtabs (char *regexp, int from_tty)
              printf_filtered ("((struct symtab *) %s)\n",
                               host_address_to_string (symtab));
              printf_filtered ("          dirname %s\n",
-                              symtab->dirname ? symtab->dirname : "(null)");
+                              SYMTAB_DIRNAME (symtab) != NULL
+                              ? SYMTAB_DIRNAME (symtab) : "(null)");
              printf_filtered ("          fullname %s\n",
                               symtab->fullname ? symtab->fullname : "(null)");
              printf_filtered ("          "
index fdedd59..e545506 100644 (file)
@@ -984,6 +984,7 @@ struct symtab
 #define LINETABLE(symtab)      (symtab)->linetable
 #define SYMTAB_OBJFILE(symtab) ((symtab)->objfile)
 #define SYMTAB_PSPACE(symtab)  (SYMTAB_OBJFILE (symtab)->pspace)
+#define SYMTAB_DIRNAME(symtab) ((symtab)->dirname)
 
 /* Call this to set the "primary" field in struct symtab.  */
 extern void set_symtab_primary (struct symtab *, int primary);