[pushed] Remove last traces of discard_all_inferiors (Re: [PATCH v2 18/24] Multi-target support)

Pedro Alves
2020-01-12T01:02:07Z

On 1/11/20 3:12 AM, Simon Marchi wrote:
> On 2019-10-17 6:50 p.m., Pedro Alves wrote:
>> @@ -539,14 +574,14 @@ extern void exit_inferior_num_silent (int num);
>>
>> extern void inferior_appeared (struct inferior *inf, int pid);
>>
>> -/* Get rid of all inferiors. */
>> -extern void discard_all_inferiors (void);
>
> I'm rebasing my -Wmissing-declarations patch series and see this:
>
> CXX inferior.o
> /home/simark/src/binutils-gdb/gdb/inferior.c:264:1: error: no previous declaration for ‘void discard_all_inferiors()’ [-Werror=missing-declarations]
> 264 | discard_all_inferiors (void)
> | ^~~~~~~~~~~~~~~~~~~~~
>
> The declaration of discard_all_inferiors was removed, but not the definition, I
> guess the intent was to remove the definition as well?

Whoops, yes, indeed.

>
> Also grepping for it finds one remaining use:
>
> bsd-kvm.c:159: discard_all_inferiors ();
>
> I presume that this call should just be removed too?

I think we still need the exit_inferiors call. I suspect direct
calls to exit_inferior shouldn't happen -- that we should use
detach/kill/disconnect instead, but that's another story.

Here's the minimal & obvious patch, which I've just now pushed.

From 4ec89149dd83efecea15300bf425c9988f4cd5c0 Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Sun, 12 Jan 2020 00:40:02 +0000
Subject: [PATCH] Remove last traces of discard_all_inferiors

The multi-target patch should have removed all traces of
discard_all_inferiors, but somehow one use stayed behind along with
the definition of the function.

discard_all_inferiors is bad now because it blindly exits inferiors of
all target connections. It's best to remove it.

gdb/ChangeLog:
2020-01-12 Pedro Alves <palves@redhat.com>

* bsd-kvm.c (bsd_kvm_target::close): Call exit_inferior_silent
directly for the current inferior instead of
discard_all_inferiors.
(discard_all_inferiors): Delete.
---
gdb/ChangeLog | 7 +++++++
gdb/bsd-kvm.c | 2 +-
gdb/inferior.c | 7 -------
3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 735c46bf70..980114919d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2020-01-12 Pedro Alves <palves@redhat.com>
+
+ * bsd-kvm.c (bsd_kvm_target::close): Call exit_inferior_silent
+ directly for the current inferior instead of
+ discard_all_inferiors.
+ (discard_all_inferiors): Delete.
+
2020-01-11 Tom Tromey <tom@tromey.com>

* tui/tui-wingeneral.c (box_win): Check cli_styling.
diff --git a/gdb/bsd-kvm.c b/gdb/bsd-kvm.c
index f864ba8b41..b1b1fee5f4 100644
--- a/gdb/bsd-kvm.c
+++ b/gdb/bsd-kvm.c
@@ -156,7 +156,7 @@ bsd_kvm_target::close ()
}

inferior_ptid = null_ptid;
- discard_all_inferiors ();
+ exit_inferior_silent (current_inferior ());
}

static LONGEST
diff --git a/gdb/inferior.c b/gdb/inferior.c
index eb090dfde1..c2e9da3d3d 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -260,13 +260,6 @@ inferior_appeared (struct inferior *inf, int pid)
gdb::observers::inferior_appeared.notify (inf);
}

-void
-discard_all_inferiors (void)
-{
- for (inferior *inf : all_non_exited_inferiors ())
- exit_inferior_silent (inf);
-}
-
struct inferior *
find_inferior_id (int num)
{

base-commit: 57d87c09a33acdce280f4c9ae4f55b885a5cee99
--
2.14.5