public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Tom Tromey <tromey@adacore.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tromey@adacore.com>
Subject: [PATCH 1/2] Convert exp_uses_objfile to a method of expression
Date: Mon, 19 Dec 2022 11:17:31 -0700	[thread overview]
Message-ID: <20221219181732.469376-2-tromey@adacore.com> (raw)
In-Reply-To: <20221219181732.469376-1-tromey@adacore.com>

This changes the exp_uses_objfile function to be a method of
'expression'.
---
 gdb/eval.c        |  9 +++++++++
 gdb/expression.h  |  5 +++++
 gdb/parse.c       | 12 ------------
 gdb/parser-defs.h |  2 --
 gdb/printcmd.c    |  2 +-
 gdb/varobj.c      |  3 +--
 6 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/gdb/eval.c b/gdb/eval.c
index d0a4a16ceb5..a43eda54411 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -89,6 +89,15 @@ parse_to_comma_and_eval (const char **expp)
 
 /* See expression.h.  */
 
+bool
+expression::uses_objfile (struct objfile *objfile) const
+{
+  gdb_assert (objfile->separate_debug_objfile_backlink == nullptr);
+  return op->uses_objfile (objfile);
+}
+
+/* See expression.h.  */
+
 struct value *
 expression::evaluate (struct type *expect_type, enum noside noside)
 {
diff --git a/gdb/expression.h b/gdb/expression.h
index a56b1856cda..47626b3cb8e 100644
--- a/gdb/expression.h
+++ b/gdb/expression.h
@@ -214,6 +214,11 @@ struct expression
     op->dump (stream, 0);
   }
 
+  /* Return true if this expression uses OBJFILE (and will become
+     dangling when OBJFILE is unloaded), otherwise return false.
+     OBJFILE must not be a separate debug info file.  */
+  bool uses_objfile (struct objfile *objfile) const;
+
   /* Evaluate the expression.  EXPECT_TYPE is the context type of the
      expression; normally this should be nullptr.  NOSIDE controls how
      evaluation is performed.  */
diff --git a/gdb/parse.c b/gdb/parse.c
index bfd9de09a10..cccdb8f98d9 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -667,18 +667,6 @@ parser_fprintf (FILE *x, const char *y, ...)
   va_end (args);
 }
 
-/* Return rue if EXP uses OBJFILE (and will become dangling when
-   OBJFILE is unloaded), otherwise return false.  OBJFILE must not be
-   a separate debug info file.  */
-
-bool
-exp_uses_objfile (struct expression *exp, struct objfile *objfile)
-{
-  gdb_assert (objfile->separate_debug_objfile_backlink == NULL);
-
-  return exp->op->uses_objfile (objfile);
-}
-
 void _initialize_parse ();
 void
 _initialize_parse ()
diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h
index ade3039ebb0..5fda49ce72c 100644
--- a/gdb/parser-defs.h
+++ b/gdb/parser-defs.h
@@ -421,7 +421,5 @@ extern bool fits_in_type (int n_sign, ULONGEST n, int type_bits,
 
 extern void parser_fprintf (FILE *, const char *, ...) ATTRIBUTE_PRINTF (2, 3);
 
-extern bool exp_uses_objfile (struct expression *exp, struct objfile *objfile);
-
 #endif /* PARSER_DEFS_H */
 
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 60921415abd..bbe8d6eb4b2 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -2360,7 +2360,7 @@ clear_dangling_display_expressions (struct objfile *objfile)
 	}
 
       if (bl_objf == objfile
-	  || (d->exp != NULL && exp_uses_objfile (d->exp.get (), objfile)))
+	  || (d->exp != nullptr && d->exp->uses_objfile (objfile)))
 	{
 	  d->exp.reset ();
 	  d->block = NULL;
diff --git a/gdb/varobj.c b/gdb/varobj.c
index 6ed5b7049bc..599dd3013a7 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -2412,8 +2412,7 @@ varobj_invalidate_if_uses_objfile (struct objfile *objfile)
 	    }
 	}
 
-      if (var->root->exp != nullptr
-	  && exp_uses_objfile (var->root->exp.get (), objfile))
+      if (var->root->exp != nullptr && var->root->exp->uses_objfile (objfile))
 	{
 	  /* The varobj's current expression references the objfile.  For
 	     globals and floating, it is possible that when we try to
-- 
2.38.1


  reply	other threads:[~2022-12-19 18:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-19 18:17 [PATCH 0/2] Two minor expression changes Tom Tromey
2022-12-19 18:17 ` Tom Tromey [this message]
2022-12-19 18:17 ` [PATCH 2/2] Use first_opcode in another spot Tom Tromey
2023-01-03 22:50 ` [PATCH 0/2] Two minor expression changes Lancelot SIX
2023-01-04 16:47   ` Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221219181732.469376-2-tromey@adacore.com \
    --to=tromey@adacore.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).