[2/5] Hurd, C++: Avoid GNU C nested functions

Message ID 20161208075036.1517-3-thomas@codesourcery.com
State New, archived
Headers

Commit Message

Thomas Schwinge Dec. 8, 2016, 7:50 a.m. UTC
  ..., which C++ doesn't allow, so...

	gdb/
	* gnu-nat.c (gnu_create_inferior): Move nested "trace_me"
	function...
	(gnu_ptrace_me): ... here.
---
 gdb/ChangeLog |  4 ++++
 gdb/gnu-nat.c | 20 +++++++++++---------
 2 files changed, 15 insertions(+), 9 deletions(-)
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f68a787..8b43cd8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@ 
 2016-12-08  Thomas Schwinge  <thomas@codesourcery.com>
 
+	* gnu-nat.c (gnu_create_inferior): Move nested "trace_me"
+	function...
+	(gnu_ptrace_me): ... here.
+
 	* i386-gnu-nat.c (i386_gnu_dr_set_control_one)
 	(i386_gnu_dr_set_addr_one): Explicitly cast "void *".
 
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index 92b9292..34fd6f1 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -2110,6 +2110,16 @@  cur_inf (void)
 }
 
 static void
+gnu_ptrace_me (void)
+{
+  /* We're in the child; make this process stop as soon as it execs.  */
+  struct inf *inf = cur_inf ();
+  inf_debug (inf, "tracing self");
+  if (ptrace (PTRACE_TRACEME) != 0)
+    error (_("ptrace (PTRACE_TRACEME) failed!"));
+}
+
+static void
 gnu_create_inferior (struct target_ops *ops, 
 		     char *exec_file, char *allargs, char **env,
 		     int from_tty)
@@ -2117,17 +2127,9 @@  gnu_create_inferior (struct target_ops *ops,
   struct inf *inf = cur_inf ();
   int pid;
 
-  void trace_me (void)
-  {
-    /* We're in the child; make this process stop as soon as it execs.  */
-    inf_debug (inf, "tracing self");
-    if (ptrace (PTRACE_TRACEME) != 0)
-      error (_("ptrace (PTRACE_TRACEME) failed!"));
-  }
-
   inf_debug (inf, "creating inferior");
 
-  pid = fork_inferior (exec_file, allargs, env, trace_me,
+  pid = fork_inferior (exec_file, allargs, env, gnu_ptrace_me,
                        NULL, NULL, NULL, NULL);
 
   /* Attach to the now stopped child, which is actually a shell...  */