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

Change-Id: Ia1d6d8a0e247a08a21af23819d71e49b37d8931b

gdb/amd64-tdep.c
gdb/arm-tdep.c
gdb/buildsym.c
gdb/compile/compile.c
gdb/dwarf2/frame.c
gdb/i386-tdep.c
gdb/python/py-symtab.c
gdb/source.c
gdb/symmisc.c
gdb/symtab.h

index e67aea8e66d6b6c43e46bf15bc46ea966a487836..539ebe9e1c36ffe34e7ce3ada2b736b96c2f1ef7 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 (COMPUNIT_PRODUCER
-          (SYMTAB_COMPUNIT (start_pc_sal.symtab))) < 6
+      || producer_is_gcc_ge_4 (SYMTAB_COMPUNIT
+                                (start_pc_sal.symtab)->producer ()) < 6
       || start_pc_sal.pc != start_pc || pc >= start_pc_sal.end)
     return pc;
 
@@ -2545,9 +2545,9 @@ amd64_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
         compilers to emit usable line notes.  */
       if (post_prologue_pc
          && (cust != NULL
-             && COMPUNIT_PRODUCER (cust) != NULL
-             && (producer_is_llvm (COMPUNIT_PRODUCER (cust))
-             || producer_is_icc_ge_19 (COMPUNIT_PRODUCER (cust)))))
+             && cust->producer () != nullptr
+             && (producer_is_llvm (cust->producer ())
+             || producer_is_icc_ge_19 (cust->producer ()))))
         return std::max (start_pc, post_prologue_pc);
     }
 
index f46913e8eaa2f525dc7e87008d0f395f97dc150a..d36856e1f3b5352ceaf534ea81acf0d2967e3960 100644 (file)
@@ -1394,9 +1394,9 @@ arm_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
         missing (e.g. for -gstabs), assuming the GNU tools.  */
       if (post_prologue_pc
          && (cust == NULL
-             || COMPUNIT_PRODUCER (cust) == NULL
-             || startswith (COMPUNIT_PRODUCER (cust), "GNU ")
-             || producer_is_llvm (COMPUNIT_PRODUCER (cust))))
+             || cust->producer () == NULL
+             || startswith (cust->producer (), "GNU ")
+             || producer_is_llvm (cust->producer ())))
        return post_prologue_pc;
 
       if (post_prologue_pc != 0)
index 267b9462abd403ae1913b365161b737aa0107f63..22727277613120e5b42531710bc8e4eb8fb5330d 100644 (file)
@@ -1013,7 +1013,7 @@ buildsym_compunit::end_symtab_with_blockvector (struct block *static_block,
   cu->set_debugformat (m_debugformat);
 
   /* Similarly for the producer.  */
-  COMPUNIT_PRODUCER (cu) = m_producer;
+  cu->set_producer (m_producer);
 
   COMPUNIT_BLOCKVECTOR (cu) = blockvector;
   {
index 6794c93d60e7bdd1bc3c4452122867638ad7f9ec..7bd6ac817b8f3b503d87190f26bfb6b4cf2b3353 100644 (file)
@@ -561,11 +561,11 @@ get_selected_pc_producer_options (void)
   struct compunit_symtab *symtab = find_pc_compunit_symtab (pc);
   const char *cs;
 
-  if (symtab == NULL || symtab->producer == NULL
-      || !startswith (symtab->producer, "GNU "))
+  if (symtab == NULL || symtab->producer () == NULL
+      || !startswith (symtab->producer (), "GNU "))
     return NULL;
 
-  cs = symtab->producer;
+  cs = symtab->producer ();
   while (*cs != 0 && *cs != '-')
     cs = skip_spaces (skip_to_space (cs));
   if (*cs != '-')
index b4e699c37e17133263d6bed31fa9071ade1c99d5..0b7ed2c63fdc8227ca1b3f61a4d1be4b57850c00 100644 (file)
@@ -745,7 +745,7 @@ dwarf2_frame_find_quirks (struct dwarf2_frame_state *fs,
   if (cust == NULL)
     return;
 
-  if (producer_is_realview (COMPUNIT_PRODUCER (cust)))
+  if (producer_is_realview (cust->producer ()))
     {
       if (fde->cie->version == 1)
        fs->armcc_cfa_offsets_sf = 1;
index aaa5592f40a9c00b8a9e0a5a59d718e36ae94a5e..e598a4d197b8a23c3de86c668e75a99c4399601c 100644 (file)
@@ -1853,9 +1853,9 @@ i386_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
         compilers to emit usable line notes.  */
       if (post_prologue_pc
          && (cust != NULL
-             && COMPUNIT_PRODUCER (cust) != NULL
-             && (producer_is_llvm (COMPUNIT_PRODUCER (cust))
-             || producer_is_icc_ge_19 (COMPUNIT_PRODUCER (cust)))))
+             && cust->producer () != NULL
+             && (producer_is_llvm (cust->producer ())
+             || producer_is_icc_ge_19 (cust->producer ()))))
         return std::max (start_pc, post_prologue_pc);
     }
  
index db19e4b1213e59430e91ef491d9b0cb583bc4c60..b973b25f1587dbc5484b24bca175625672349e30 100644 (file)
@@ -132,9 +132,9 @@ stpy_get_producer (PyObject *self, void *closure)
 
   STPY_REQUIRE_VALID (self, symtab);
   cust = SYMTAB_COMPUNIT (symtab);
-  if (COMPUNIT_PRODUCER (cust) != NULL)
+  if (cust->producer () != nullptr)
     {
-      const char *producer = COMPUNIT_PRODUCER (cust);
+      const char *producer = cust->producer ();
 
       return host_string_to_python_string (producer).release ();
     }
index 3f047467b2eb6e55c1f9f77f5261bcd969625db2..07ea2af9fd853e7f4db326328de48b390f779371 100644 (file)
@@ -724,8 +724,8 @@ info_source_command (const char *ignore, int from_tty)
 
   printf_filtered (_("Source language is %s.\n"), language_str (s->language));
   printf_filtered (_("Producer is %s.\n"),
-                  COMPUNIT_PRODUCER (cust) != NULL
-                  ? COMPUNIT_PRODUCER (cust) : _("unknown"));
+                  (cust->producer ()) != nullptr
+                   ? cust->producer () : _("unknown"));
   printf_filtered (_("Compiled with %s debugging format.\n"),
                   cust->debugformat ());
   printf_filtered (_("%s preprocessor macro info.\n"),
index 4220fd7f93954cd0250db4efd9c6cd19aab26bdd..b946fc8bde0448dc4594853ba39bca4494578799 100644 (file)
@@ -779,9 +779,8 @@ maintenance_info_symtabs (const char *regexp, int from_tty)
                        printf_filtered ("    debugformat %s\n",
                                         cust->debugformat ());
                        printf_filtered ("    producer %s\n",
-                                        COMPUNIT_PRODUCER (cust) != NULL
-                                        ? COMPUNIT_PRODUCER (cust)
-                                        : "(null)");
+                                        (cust->producer () != nullptr
+                                         ? cust->producer () : "(null)"));
                        printf_filtered ("    dirname %s\n",
                                         COMPUNIT_DIRNAME (cust) != NULL
                                         ? COMPUNIT_DIRNAME (cust)
index 2500c8e4166de4a9034a18f4a0620dff59ff3caf..1e3f95dc92faac150b8558644661b13b65de02c9 100644 (file)
@@ -1492,6 +1492,16 @@ struct compunit_symtab
     m_debugformat = debugformat;
   }
 
+  const char *producer () const
+  {
+    return m_producer;
+  }
+
+  void set_producer (const char *producer)
+  {
+    m_producer = producer;
+  }
+
   /* Make PRIMARY_FILETAB the primary filetab of this compunit symtab.
 
      PRIMARY_FILETAB must already be a filetab of this compunit symtab.  */
@@ -1538,7 +1548,7 @@ struct compunit_symtab
   const char *m_debugformat;
 
   /* String of producer version information, or NULL if we don't know.  */
-  const char *producer;
+  const char *m_producer;
 
   /* Directory in which it was compiled, or NULL if we don't know.  */
   const char *dirname;
@@ -1587,7 +1597,6 @@ struct compunit_symtab
 
 using compunit_symtab_range = next_range<compunit_symtab>;
 
-#define COMPUNIT_PRODUCER(cust) ((cust)->producer)
 #define COMPUNIT_DIRNAME(cust) ((cust)->dirname)
 #define COMPUNIT_BLOCKVECTOR(cust) ((cust)->blockvector)
 #define COMPUNIT_BLOCK_LINE_SECTION(cust) ((cust)->block_line_section)