aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2022-05-27 16:33:56 +0100
committerPedro Alves <pedro@palves.net>2022-06-17 09:58:49 +0100
commit7464aeaab47ca3fb7127223fe372489c9c7ed69e (patch)
tree0b301cd6c229f435b44b97b81ac543ab840a0a2b /gdb
parent238dc9af03392ecd8129ee54a340efd736782cf9 (diff)
downloadgdb-7464aeaab47ca3fb7127223fe372489c9c7ed69e.zip
gdb-7464aeaab47ca3fb7127223fe372489c9c7ed69e.tar.gz
gdb-7464aeaab47ca3fb7127223fe372489c9c7ed69e.tar.bz2
Convert location_spec_type to a method
This converts location_spec_type to location_spec::type(). Change-Id: Iff4cbfafb1cf3d22adfa142ff939b4a148e52273
Diffstat (limited to 'gdb')
-rw-r--r--gdb/breakpoint.c8
-rw-r--r--gdb/linespec.c2
-rw-r--r--gdb/location.c18
-rw-r--r--gdb/location.h26
-rw-r--r--gdb/probe.c2
5 files changed, 25 insertions, 31 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index bfa9e68..e3739a7 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -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);
diff --git a/gdb/linespec.c b/gdb/linespec.c
index f992477..976e728 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -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:
{
diff --git a/gdb/location.c b/gdb/location.c
index ae056f3..9643ea8 100644
--- a/gdb/location.c
+++ b/gdb/location.c
@@ -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);
}
diff --git a/gdb/location.h b/gdb/location.h
index f3b6332..9ba3a20 100644
--- a/gdb/location.h
+++ b/gdb/location.h
@@ -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.
diff --git a/gdb/probe.c b/gdb/probe.c
index 5371b7e..ad7af77 100644
--- a/gdb/probe.c
+++ b/gdb/probe.c
@@ -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;