gdb: remove SYMTAB_COMPUNIT macro, add getter/setter
authorSimon Marchi <simon.marchi@efficios.com>
Sat, 20 Nov 2021 03:49:01 +0000 (22:49 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Sun, 6 Feb 2022 20:48:19 +0000 (15:48 -0500)
Add a getter and a setter for a symtab's compunit_symtab.  Remove the
corresponding macro and adjust all callers.

For brevity, I chose the name "compunit" instead of "compunit_symtab"
the the field, getter and setter names.  Since we are already in symtab
context, the _symtab suffix seems redundant.

Change-Id: I4b9b731c96e3594f7733e75af1e3d01bc0e4fe92

13 files changed:
gdb/amd64-tdep.c
gdb/breakpoint.c
gdb/macroscope.c
gdb/mdebugread.c
gdb/mi/mi-cmd-file.c
gdb/or1k-tdep.c
gdb/python/py-symtab.c
gdb/source.c
gdb/symfile.c
gdb/symmisc.c
gdb/symtab.c
gdb/symtab.h
gdb/z80-tdep.c

index 4444187515fb712257f756a72483824ca171f1af..b95ab1e87b81db582768ca5696d588988f6730d1 100644 (file)
@@ -2474,8 +2474,8 @@ amd64_skip_xmm_prologue (CORE_ADDR pc, CORE_ADDR start_pc)
 
   start_pc_sal = find_pc_sect_line (start_pc, NULL, 0);
   if (start_pc_sal.symtab == NULL
-      || producer_is_gcc_ge_4 (SYMTAB_COMPUNIT
-                                (start_pc_sal.symtab)->producer ()) < 6
+      || producer_is_gcc_ge_4 (start_pc_sal.symtab->compunit ()
+                              ->producer ()) < 6
       || start_pc_sal.pc != start_pc || pc >= start_pc_sal.end)
     return pc;
 
index 9567c737cabfdd9ded46630f18c93348ff5740b5..96a2b46dfc25c04afbc4d60391f4e0edb68e5220 100644 (file)
@@ -9230,7 +9230,7 @@ resolve_sal_pc (struct symtab_and_line *sal)
       struct symbol *sym;
 
       bv = blockvector_for_pc_sect (sal->pc, 0, &b,
-                                   SYMTAB_COMPUNIT (sal->symtab));
+                                   sal->symtab->compunit ());
       if (bv != NULL)
        {
          sym = block_linkage_function (b);
index c581c426eda094a59625531f11c2eed519166cc9..93f561acccd8b7a5e97afc3b555b44f93edbb03b 100644 (file)
@@ -43,7 +43,8 @@ sal_macro_scope (struct symtab_and_line sal)
 
   if (sal.symtab == NULL)
     return NULL;
-  cust = SYMTAB_COMPUNIT (sal.symtab);
+
+  cust = sal.symtab->compunit ();
   if (cust->macro_table () == NULL)
     return NULL;
 
index 59b70389531ab0a9b3b88f40e163ebe0e108a9c5..a6a70ccfea9311113f1f0d812d401a26fc4ace06 100644 (file)
@@ -4502,7 +4502,7 @@ add_block (struct block *b, struct symtab *s)
                                         + BLOCKVECTOR_NBLOCKS (bv)
                                         * sizeof (bv->block)));
   if (bv != SYMTAB_BLOCKVECTOR (s))
-    SYMTAB_COMPUNIT (s)->set_blockvector (bv);
+    s->compunit ()->set_blockvector (bv);
 
   BLOCKVECTOR_BLOCK (bv, BLOCKVECTOR_NBLOCKS (bv)++) = b;
 }
index f4ee791f17b531e119acca12835c6afb480f7fff..0ed7bed82e23e28e5e2b4596bb41a6bccbbdad3d 100644 (file)
@@ -59,7 +59,7 @@ mi_cmd_file_list_exec_source_file (const char *command, char **argv, int argc)
   uiout->field_string ("fullname", symtab_to_fullname (st.symtab));
 
   uiout->field_signed ("macro-info",
-                      SYMTAB_COMPUNIT (st.symtab)->macro_table () != NULL);
+                      st.symtab->compunit ()->macro_table () != NULL);
 }
 
 /* Implement -file-list-exec-source-files command.  */
index 5670a623024ff6c72d987b3c13f1d11068285f6d..2787609d4f80c25f33fcb52b6f239733d7b9d192 100644 (file)
@@ -471,7 +471,7 @@ or1k_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
        {
          struct symtab_and_line prologue_sal = find_pc_line (start_pc, 0);
          struct compunit_symtab *compunit
-           = SYMTAB_COMPUNIT (prologue_sal.symtab);
+           = prologue_sal.symtab->compunit ();
          const char *debug_format = compunit->debugformat ();
 
          if ((NULL != debug_format)
index b973b25f1587dbc5484b24bca175625672349e30..b5d102c1b7f1e85e2ced82606ea06a7d8b4f5bcc 100644 (file)
@@ -131,7 +131,7 @@ stpy_get_producer (PyObject *self, void *closure)
   struct compunit_symtab *cust;
 
   STPY_REQUIRE_VALID (self, symtab);
-  cust = SYMTAB_COMPUNIT (symtab);
+  cust = symtab->compunit ();
   if (cust->producer () != nullptr)
     {
       const char *producer = cust->producer ();
index e6ba4481941382e48bc2ca0d7a9d7f861dc355e6..ee896264277f2b779d4c2f63a46c7c711ebb16b3 100644 (file)
@@ -711,7 +711,7 @@ info_source_command (const char *ignore, int from_tty)
       return;
     }
 
-  cust = SYMTAB_COMPUNIT (s);
+  cust = s->compunit ();
   printf_filtered (_("Current source file is %s\n"), s->filename);
   if (SYMTAB_DIRNAME (s) != NULL)
     printf_filtered (_("Compilation directory is %s\n"), SYMTAB_DIRNAME (s));
@@ -1184,9 +1184,9 @@ open_source_file (struct symtab *s)
 
   if (fd.get () < 0)
     {
-      if (SYMTAB_COMPUNIT (s) != nullptr)
+      if (s->compunit () != nullptr)
        {
-         const objfile *ofp = SYMTAB_COMPUNIT (s)->objfile ();
+         const objfile *ofp = s->compunit ()->objfile ();
 
          std::string srcpath;
          if (IS_ABSOLUTE_PATH (s->filename))
index b20284cad988c724f009bfa070f4e1feff3bffe7..46c42014a9f6b14ab4c019089b4b0ba3f5f5ac72 100644 (file)
@@ -2807,7 +2807,7 @@ allocate_symtab (struct compunit_symtab *cust, const char *filename)
   cust->add_filetab (symtab);
 
   /* Backlink to the containing compunit symtab.  */
-  symtab->compunit_symtab = cust;
+  symtab->set_compunit (cust);
 
   return symtab;
 }
index 6e1a4c2e8341152605467c835051fe442073b35d..d079ac460ee825de151e58e565d34ce38eef8230 100644 (file)
@@ -329,7 +329,7 @@ dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
     }
   else
     {
-      compunit_symtab *compunit = SYMTAB_COMPUNIT (symtab);
+      compunit_symtab *compunit = symtab->compunit ();
       const char *compunit_filename
        = symtab_to_filename_for_display (compunit->primary_filetab ());
 
@@ -342,7 +342,7 @@ dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
      compunit_symtabs included by this one. */
   if (is_main_symtab_of_compunit_symtab (symtab))
     {
-      struct compunit_symtab *cust = SYMTAB_COMPUNIT (symtab);
+      struct compunit_symtab *cust = symtab->compunit ();
 
       if (cust->user != nullptr)
        {
@@ -956,14 +956,14 @@ maintenance_print_one_line_table (struct symtab *symtab, void *data)
   struct linetable *linetable;
   struct objfile *objfile;
 
-  objfile = symtab->compunit_symtab->objfile ();
+  objfile = symtab->compunit ()->objfile ();
   printf_filtered (_("objfile: %ps ((struct objfile *) %s)\n"),
                   styled_string (file_name_style.style (),
                                  objfile_name (objfile)),
                   host_address_to_string (objfile));
   printf_filtered (_("compunit_symtab: %s ((struct compunit_symtab *) %s)\n"),
-                  symtab->compunit_symtab->name,
-                  host_address_to_string (symtab->compunit_symtab));
+                  symtab->compunit ()->name,
+                  host_address_to_string (symtab->compunit ()));
   printf_filtered (_("symtab: %ps ((struct symtab *) %s)\n"),
                   styled_string (file_name_style.style (),
                                  symtab_to_fullname (symtab)),
index 5ad5cdbe3a3afece22b5bde4459737277c30a061..459c0c3c748781f2cd4c318683f775d42f78f5fd 100644 (file)
@@ -3709,7 +3709,7 @@ find_function_start_sal_1 (CORE_ADDR func_addr, obj_section *section,
   symtab_and_line sal = find_pc_sect_line (func_addr, section, 0);
 
   if (funfirstline && sal.symtab != NULL
-      && (SYMTAB_COMPUNIT (sal.symtab)->locations_valid ()
+      && (sal.symtab->compunit ()->locations_valid ()
          || SYMTAB_LANGUAGE (sal.symtab) == language_asm))
     {
       struct gdbarch *gdbarch = SYMTAB_OBJFILE (sal.symtab)->arch ();
@@ -3885,7 +3885,7 @@ skip_prologue_sal (struct symtab_and_line *sal)
      have proven the CU (Compilation Unit) supports it.  sal->SYMTAB does not
      have to be set by the caller so we use SYM instead.  */
   if (sym != NULL
-      && SYMTAB_COMPUNIT (symbol_symtab (sym))->locations_valid ())
+      && symbol_symtab (sym)->compunit ()->locations_valid ())
     force_skip = 0;
 
   saved_pc = pc;
@@ -6095,7 +6095,7 @@ collect_file_symbol_completion_matches (completion_tracker &tracker,
      for symbols which match.  */
   iterate_over_symtabs (srcfile, [&] (symtab *s)
     {
-      add_symtab_completions (SYMTAB_COMPUNIT (s),
+      add_symtab_completions (s->compunit (),
                              tracker, mode, lookup_name,
                              sym_text, word, TYPE_CODE_UNDEF);
       return false;
index c319d51a2714fca8306d40118b837bf01d6c6b5b..c313d54de18e40dbfe4c50579d703a8c7db95f97 100644 (file)
@@ -1373,6 +1373,16 @@ typedef std::vector<CORE_ADDR> section_offsets;
 
 struct symtab
 {
+  struct compunit_symtab *compunit () const
+  {
+    return m_compunit;
+  }
+
+  void set_compunit (struct compunit_symtab *compunit)
+  {
+    m_compunit = compunit;
+  }
+
   /* Unordered chain of all filetabs in the compunit,  with the exception
      that the "main" source file is the first entry in the list.  */
 
@@ -1380,7 +1390,7 @@ struct symtab
 
   /* Backlink to containing compunit symtab.  */
 
-  struct compunit_symtab *compunit_symtab;
+  struct compunit_symtab *m_compunit;
 
   /* Table mapping core addresses to line numbers for this file.
      Can be NULL if none.  Never shared between different symtabs.  */
@@ -1405,15 +1415,14 @@ struct symtab
 
 using symtab_range = next_range<symtab>;
 
-#define SYMTAB_COMPUNIT(symtab) ((symtab)->compunit_symtab)
 #define SYMTAB_LINETABLE(symtab) ((symtab)->linetable)
 #define SYMTAB_LANGUAGE(symtab) ((symtab)->language)
 #define SYMTAB_BLOCKVECTOR(symtab) \
-  (SYMTAB_COMPUNIT (symtab)->blockvector ())
+  (symtab->compunit ()->blockvector ())
 #define SYMTAB_OBJFILE(symtab) \
-  (SYMTAB_COMPUNIT (symtab)->objfile ())
+  (symtab->compunit ()->objfile ())
 #define SYMTAB_PSPACE(symtab) (SYMTAB_OBJFILE (symtab)->pspace)
-#define SYMTAB_DIRNAME(symtab) (SYMTAB_COMPUNIT (symtab)->dirname ())
+#define SYMTAB_DIRNAME(symtab) ((symtab)->compunit ()->dirname ())
 
 /* Compunit symtabs contain the actual "symbol table", aka blockvector, as well
    as the list of all source files (what gdb has historically associated with
@@ -1665,7 +1674,7 @@ extern enum language compunit_language (const struct compunit_symtab *cust);
 static inline bool
 is_main_symtab_of_compunit_symtab (struct symtab *symtab)
 {
-  return symtab == SYMTAB_COMPUNIT (symtab)->primary_filetab ();
+  return symtab == symtab->compunit ()->primary_filetab ();
 }
 \f
 
index 4a58fe5138ea009f11db16471a0f5f47b1b7acd4..a252574c94e263bee0af2c3883ffcb3c0466b43d 100644 (file)
@@ -495,7 +495,7 @@ z80_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
   if (prologue_end != 0)
     {
       struct symtab_and_line prologue_sal = find_pc_line (func_addr, 0);
-      struct compunit_symtab *compunit = SYMTAB_COMPUNIT (prologue_sal.symtab);
+      struct compunit_symtab *compunit = prologue_sal.symtab->compunit ();
       const char *debug_format = compunit->debugformat ();
 
       if (debug_format != NULL &&