Convert location_spec_type to a method
authorPedro Alves <pedro@palves.net>
Fri, 27 May 2022 15:33:56 +0000 (16:33 +0100)
committerPedro Alves <pedro@palves.net>
Fri, 17 Jun 2022 08:58:49 +0000 (09:58 +0100)
This converts location_spec_type to location_spec::type().

Change-Id: Iff4cbfafb1cf3d22adfa142ff939b4a148e52273

gdb/breakpoint.c
gdb/linespec.c
gdb/location.c
gdb/location.h
gdb/probe.c

index bfa9e68fdbe72a0459627cd7e2bbf71b48cc9e37..e3739a772de31aa566d63cfe8b4dffb4263fc29e 100644 (file)
@@ -8453,7 +8453,7 @@ parse_breakpoint_sals (location_spec *locspec,
 {
   struct symtab_and_line cursal;
 
-  if (location_spec_type (locspec) == LINESPEC_LOCATION_SPEC)
+  if (locspec->type () == LINESPEC_LOCATION_SPEC)
     {
       const char *spec = as_linespec_location_spec (locspec)->spec_string;
 
@@ -8505,7 +8505,7 @@ parse_breakpoint_sals (location_spec *locspec,
     {
       const char *spec = NULL;
 
-      if (location_spec_type (locspec) == LINESPEC_LOCATION_SPEC)
+      if (locspec->type () == LINESPEC_LOCATION_SPEC)
        spec = as_linespec_location_spec (locspec)->spec_string;
 
       if (!cursal.symtab
@@ -8768,7 +8768,7 @@ breakpoint_ops_for_location_spec (const location_spec *locspec,
 {
   if (locspec != nullptr)
     return (breakpoint_ops_for_location_spec_type
-           (location_spec_type (locspec), is_tracepoint));
+           (locspec->type (), is_tracepoint));
   return &code_breakpoint_ops;
 }
 
@@ -11673,7 +11673,7 @@ std::vector<symtab_and_line>
 code_breakpoint::decode_location_spec (location_spec *locspec,
                                       program_space *search_pspace)
 {
-  if (location_spec_type (locspec) == PROBE_LOCATION_SPEC)
+  if (locspec->type () == PROBE_LOCATION_SPEC)
     return bkpt_probe_decode_location_spec (this, locspec, search_pspace);
 
   return decode_location_spec_default (this, locspec, search_pspace);
index f992477b1d6091e351fafd98e2ea341a0106580d..976e728a301105eedcaeff8b42618b4490a94867 100644 (file)
@@ -3062,7 +3062,7 @@ location_spec_to_sals (linespec_parser *parser,
 {
   std::vector<symtab_and_line> result;
 
-  switch (location_spec_type (locspec))
+  switch (locspec->type ())
     {
     case LINESPEC_LOCATION_SPEC:
       {
index ae056f35296a6684d59b39f4a1d8fa3a2733659d..9643ea857a36334c86d15c3f19a03b83c67b0138 100644 (file)
@@ -206,14 +206,6 @@ explicit_location_spec::compute_string () const
 
 /* See description in location.h.  */
 
-enum location_spec_type
-location_spec_type (const location_spec *locspec)
-{
-  return locspec->type;
-}
-
-/* See description in location.h.  */
-
 location_spec_up
 new_linespec_location_spec (const char **linespec,
                            symbol_name_match_type match_type)
@@ -227,7 +219,7 @@ new_linespec_location_spec (const char **linespec,
 const linespec_location_spec *
 as_linespec_location_spec (const location_spec *locspec)
 {
-  gdb_assert (locspec->type == LINESPEC_LOCATION_SPEC);
+  gdb_assert (locspec->type () == LINESPEC_LOCATION_SPEC);
   return static_cast<const linespec_location_spec *> (locspec);
 }
 
@@ -246,7 +238,7 @@ new_address_location_spec (CORE_ADDR addr, const char *addr_string,
 const address_location_spec *
 as_address_location_spec (const location_spec *locspec)
 {
-  gdb_assert (locspec->type == ADDRESS_LOCATION_SPEC);
+  gdb_assert (locspec->type () == ADDRESS_LOCATION_SPEC);
   return static_cast<const address_location_spec *> (locspec);
 }
 
@@ -263,7 +255,7 @@ new_probe_location_spec (std::string &&probe)
 const probe_location_spec *
 as_probe_location_spec (const location_spec *locspec)
 {
-  gdb_assert (locspec->type == PROBE_LOCATION_SPEC);
+  gdb_assert (locspec->type () == PROBE_LOCATION_SPEC);
   return static_cast<const probe_location_spec *> (locspec);
 }
 
@@ -272,7 +264,7 @@ as_probe_location_spec (const location_spec *locspec)
 const explicit_location_spec *
 as_explicit_location_spec (const location_spec *locspec)
 {
-  gdb_assert (locspec->type == EXPLICIT_LOCATION_SPEC);
+  gdb_assert (locspec->type () == EXPLICIT_LOCATION_SPEC);
   return static_cast<const explicit_location_spec *> (locspec);
 }
 
@@ -281,7 +273,7 @@ as_explicit_location_spec (const location_spec *locspec)
 explicit_location_spec *
 as_explicit_location_spec (location_spec *locspec)
 {
-  gdb_assert (locspec->type == EXPLICIT_LOCATION_SPEC);
+  gdb_assert (locspec->type () == EXPLICIT_LOCATION_SPEC);
   return static_cast<explicit_location_spec *> (locspec);
 }
 
index f3b63320c2e88ed86c167d637fbc00604bbe0762..9ba3a20731bde1680e058f9b55aff6388877f9bb 100644 (file)
@@ -93,8 +93,11 @@ struct location_spec
     return as_string.c_str ();
   }
 
-  /* The type of this location specification.  */
-  enum location_spec_type type;
+  /* Return this location spec's type.  */
+  enum location_spec_type type () const
+  {
+    return m_type;
+  }
 
   /* Cached string representation of this location spec.  This is
      used, e.g., to save location specs to file.  */
@@ -103,25 +106,29 @@ struct location_spec
 protected:
 
   explicit location_spec (enum location_spec_type t)
-    : type (t)
+    : m_type (t)
   {
   }
 
   location_spec (enum location_spec_type t, std::string &&str)
-    : type (t),
-      as_string (std::move (str))
+    : as_string (std::move (str)),
+      m_type (t)
   {
   }
 
   location_spec (const location_spec &other)
-    : type (other.type),
-      as_string (other.as_string)
+    : as_string (other.as_string),
+      m_type (other.m_type)
   {
   }
 
   /* Compute the string representation of this object.  This is called
      by to_string when needed.  */
   virtual std::string compute_string () const = 0;
+
+private:
+  /* The type of this location specification.  */
+  enum location_spec_type m_type;
 };
 
 /* A "normal" linespec.  */
@@ -226,11 +233,6 @@ protected:
   std::string compute_string () const override;
 };
 
-/* Return the type of the given location spec.  */
-
-extern enum location_spec_type
-  location_spec_type (const location_spec *);
-
 /* Return a string representation of LOCSPEC.
    This function may return NULL for unspecified linespecs,
    e.g, LINESPEC_LOCATION_SPEC and spec_string is NULL.
index 5371b7eca460646a39a526889e44e8458562e50c..ad7af77f72228238592faae72d3de732016854f6 100644 (file)
@@ -122,7 +122,7 @@ parse_probes (const location_spec *locspec,
   char *objfile_namestr = NULL, *provider = NULL, *name, *p;
   const char *arg_start, *cs;
 
-  gdb_assert (location_spec_type (locspec) == PROBE_LOCATION_SPEC);
+  gdb_assert (locspec->type () == PROBE_LOCATION_SPEC);
   arg_start = locspec->to_string ();
 
   cs = arg_start;