Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH 0/7] C++ patches
@ 2015-10-28 16:48 Pedro Alves
  2015-10-28 16:55 ` [PATCH 1/7] compile: Rename struct type_map_instance::gcc_type field Pedro Alves
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 16:48 UTC (permalink / raw)
  To: gdb-patches

A few more GDB-in-C++ patches.

Pedro Alves (7):
  compile: Rename struct type_map_instance::gcc_type field
  Add cast to exception_none
  gdbserver/Linux: Introduce NULL_REGSET
  gdbserver: btrace enums
  gdbserver: enum gdb_signal casts
  gdbserver/tracepoint: Add casts out of tpoint->handle
  gdbserver/mem-break.c: Add cast

 gdb/common/common-exceptions.c    |  2 +-
 gdb/compile/compile-c-types.c     |  8 ++++----
 gdb/gdbserver/linux-aarch64-low.c |  2 +-
 gdb/gdbserver/linux-arm-low.c     |  2 +-
 gdb/gdbserver/linux-crisv32-low.c |  2 +-
 gdb/gdbserver/linux-low.c         |  2 +-
 gdb/gdbserver/linux-low.h         |  5 +++++
 gdb/gdbserver/linux-m68k-low.c    |  2 +-
 gdb/gdbserver/linux-mips-low.c    |  2 +-
 gdb/gdbserver/linux-nios2-low.c   |  2 +-
 gdb/gdbserver/linux-ppc-low.c     |  2 +-
 gdb/gdbserver/linux-s390-low.c    |  2 +-
 gdb/gdbserver/linux-sh-low.c      |  2 +-
 gdb/gdbserver/linux-sparc-low.c   |  2 +-
 gdb/gdbserver/linux-tic6x-low.c   |  2 +-
 gdb/gdbserver/linux-tile-low.c    |  2 +-
 gdb/gdbserver/linux-x86-low.c     |  2 +-
 gdb/gdbserver/linux-xtensa-low.c  |  2 +-
 gdb/gdbserver/mem-break.c         |  2 +-
 gdb/gdbserver/server.c            | 15 ++++++++-------
 gdb/gdbserver/target.h            |  6 +++---
 gdb/gdbserver/tracepoint.c        | 14 ++++++++++++--
 22 files changed, 49 insertions(+), 33 deletions(-)

-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/7] compile: Rename struct type_map_instance::gcc_type field
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
@ 2015-10-28 16:55 ` Pedro Alves
  2015-10-28 17:05 ` [PATCH 6/7] gdbserver/tracepoint: Add casts out of tpoint->handle Pedro Alves
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 16:55 UTC (permalink / raw)
  To: gdb-patches

Fixes:

  src/gdb/compile/compile-c-types.c:36:12: error: declaration of ‘gcc_type type_map_instance::gcc_type’ [-fpermissive]
     gcc_type gcc_type;
	      ^
  In file included from src/gdb/../include/gcc-c-interface.h:23:0,
		   from src/gdb/compile/compile-internal.h:21,
		   from src/gdb/compile/compile-c-types.c:23:
  src/gdb/../include/gcc-interface.h:32:28: error: changes meaning of ‘gcc_type’ from ‘typedef long long unsigned int gcc_type’ [-fpermissive]
   typedef unsigned long long gcc_type;
			      ^
  src/gdb/compile/compile-c-types.c: In function ‘gcc_type convert_qualified(compile_c_instance*, type*)’:
  src/gdb/compile/compile-c-types.c:310:19: error: invalid conversion from ‘int’ to ‘gcc_qualifiers’ [-fpermissive]
		quals);
		     ^

gdb/ChangeLog:
2015-10-27  Pedro Alves  <palves@redhat.com>

	* compile/compile-c-types.c (struct type_map_instance)
	<gcc_type>: Rename to gcc_type_handle.
	(insert_type, convert_type): Adjust.
---
 gdb/compile/compile-c-types.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gdb/compile/compile-c-types.c b/gdb/compile/compile-c-types.c
index 60f9bd4..ccc9167 100644
--- a/gdb/compile/compile-c-types.c
+++ b/gdb/compile/compile-c-types.c
@@ -31,7 +31,7 @@ struct type_map_instance
 
   /* The corresponding gcc type handle.  */
 
-  gcc_type gcc_type;
+  gcc_type gcc_type_handle;
 };
 
 /* Hash a type_map_instance.  */
@@ -72,13 +72,13 @@ insert_type (struct compile_c_instance *context, struct type *type,
   void **slot;
 
   inst.type = type;
-  inst.gcc_type = gcc_type;
+  inst.gcc_type_handle = gcc_type;
   slot = htab_find_slot (context->type_map, &inst, INSERT);
 
   add = (struct type_map_instance *) *slot;
   /* The type might have already been inserted in order to handle
      recursive types.  */
-  if (add != NULL && add->gcc_type != gcc_type)
+  if (add != NULL && add->gcc_type_handle != gcc_type)
     error (_("Unexpected type id from GCC, check you use recent enough GCC."));
 
   if (add == NULL)
@@ -388,7 +388,7 @@ convert_type (struct compile_c_instance *context, struct type *type)
   inst.type = type;
   found = (struct type_map_instance *) htab_find (context->type_map, &inst);
   if (found != NULL)
-    return found->gcc_type;
+    return found->gcc_type_handle;
 
   result = convert_type_basic (context, type);
   insert_type (context, type, result);
-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 6/7] gdbserver/tracepoint: Add casts out of tpoint->handle
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
  2015-10-28 16:55 ` [PATCH 1/7] compile: Rename struct type_map_instance::gcc_type field Pedro Alves
@ 2015-10-28 17:05 ` Pedro Alves
  2015-10-28 17:10 ` [PATCH 3/7] gdbserver/Linux: Introduce NULL_REGSET Pedro Alves
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 17:05 UTC (permalink / raw)
  To: gdb-patches

... as needed for C++.

tpoint->handle is a generic 'void *' handle.

gdb/gdbserver/ChangeLog:
2015-10-27  Pedro Alves  <palves@redhat.com>

	* tracepoint.c (clear_installed_tracepoints): Add casts.
---
 gdb/gdbserver/tracepoint.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
index b6c70c9..9006a2e 100644
--- a/gdb/gdbserver/tracepoint.c
+++ b/gdb/gdbserver/tracepoint.c
@@ -2448,10 +2448,20 @@ clear_installed_tracepoints (void)
       switch (tpoint->type)
 	{
 	case trap_tracepoint:
-	  delete_breakpoint (tpoint->handle);
+	  {
+	    struct breakpoint *bp
+	      = (struct breakpoint *) tpoint->handle;
+
+	    delete_breakpoint (bp);
+	  }
 	  break;
 	case fast_tracepoint:
-	  delete_fast_tracepoint_jump (tpoint->handle);
+	  {
+	    struct fast_tracepoint_jump *jump
+	      = (struct fast_tracepoint_jump *) tpoint->handle;
+
+	    delete_fast_tracepoint_jump (jump);
+	  }
 	  break;
 	case static_tracepoint:
 	  if (prev_stpoint != NULL
-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 3/7] gdbserver/Linux: Introduce NULL_REGSET
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
  2015-10-28 16:55 ` [PATCH 1/7] compile: Rename struct type_map_instance::gcc_type field Pedro Alves
  2015-10-28 17:05 ` [PATCH 6/7] gdbserver/tracepoint: Add casts out of tpoint->handle Pedro Alves
@ 2015-10-28 17:10 ` Pedro Alves
  2015-10-28 17:20 ` [PATCH 4/7] gdbserver: btrace enums Pedro Alves
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 17:10 UTC (permalink / raw)
  To: gdb-patches

Fixes errors like:

 src/gdb/gdbserver/linux-x86-low.c:477:1: error: invalid conversion from 'int' to 'regset_type' [-fpermissive]

gdb/gdbserver/ChangeLog:
2015-10-27  Pedro Alves  <palves@redhat.com>

	* linux-low.h (NULL_REGSET): Define.
	* linux-aarch64-low.c (aarch64_regsets): Use NULL_REGSET.
	* linux-arm-low.c (arm_regsets): Likewise.
	* linux-crisv32-low.c (cris_regsets): Likewise.
	* linux-m68k-low.c (m68k_regsets): Likewise.
	* linux-mips-low.c (mips_regsets): Likewise.
	* linux-nios2-low.c (nios2_regsets): Likewise.
	* linux-ppc-low.c (ppc_regsets): Likewise.
	* linux-s390-low.c (s390_regsets): Likewise.
	* linux-sh-low.c (sh_regsets): Likewise.
	* linux-sparc-low.c (sparc_regsets): Likewise.
	* linux-tic6x-low.c (tic6x_regsets): Likewise.
	* linux-tile-low.c (tile_regsets): Likewise.
	* linux-x86-low.c (x86_regsets): Likewise.
	* linux-xtensa-low.c (xtensa_regsets): Likewise.
---
 gdb/gdbserver/linux-aarch64-low.c | 2 +-
 gdb/gdbserver/linux-arm-low.c     | 2 +-
 gdb/gdbserver/linux-crisv32-low.c | 2 +-
 gdb/gdbserver/linux-low.h         | 5 +++++
 gdb/gdbserver/linux-m68k-low.c    | 2 +-
 gdb/gdbserver/linux-mips-low.c    | 2 +-
 gdb/gdbserver/linux-nios2-low.c   | 2 +-
 gdb/gdbserver/linux-ppc-low.c     | 2 +-
 gdb/gdbserver/linux-s390-low.c    | 2 +-
 gdb/gdbserver/linux-sh-low.c      | 2 +-
 gdb/gdbserver/linux-sparc-low.c   | 2 +-
 gdb/gdbserver/linux-tic6x-low.c   | 2 +-
 gdb/gdbserver/linux-tile-low.c    | 2 +-
 gdb/gdbserver/linux-x86-low.c     | 2 +-
 gdb/gdbserver/linux-xtensa-low.c  | 2 +-
 15 files changed, 19 insertions(+), 14 deletions(-)

diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdb/gdbserver/linux-aarch64-low.c
index cb49a04..4f23392 100644
--- a/gdb/gdbserver/linux-aarch64-low.c
+++ b/gdb/gdbserver/linux-aarch64-low.c
@@ -539,7 +539,7 @@ static struct regset_info aarch64_regsets[] =
     sizeof (struct user_fpsimd_state), FP_REGS,
     aarch64_fill_fpregset, aarch64_store_fpregset
   },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct regsets_info aarch64_regsets_info =
diff --git a/gdb/gdbserver/linux-arm-low.c b/gdb/gdbserver/linux-arm-low.c
index d3ae9f4..bab2aaf 100644
--- a/gdb/gdbserver/linux-arm-low.c
+++ b/gdb/gdbserver/linux-arm-low.c
@@ -898,7 +898,7 @@ static struct regset_info arm_regsets[] = {
   { PTRACE_GETVFPREGS, PTRACE_SETVFPREGS, 0, 32 * 8 + 4,
     EXTENDED_REGS,
     arm_fill_vfpregset, arm_store_vfpregset },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct regsets_info arm_regsets_info =
diff --git a/gdb/gdbserver/linux-crisv32-low.c b/gdb/gdbserver/linux-crisv32-low.c
index f97122e..8d9ef04 100644
--- a/gdb/gdbserver/linux-crisv32-low.c
+++ b/gdb/gdbserver/linux-crisv32-low.c
@@ -391,7 +391,7 @@ cris_arch_setup (void)
 static struct regset_info cris_regsets[] = {
   { PTRACE_GETREGS, PTRACE_SETREGS, 0, cris_num_regs * 4,
     GENERAL_REGS, cris_fill_gregset, cris_store_gregset },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 
diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h
index 28dd4db..ccf4c94 100644
--- a/gdb/gdbserver/linux-low.h
+++ b/gdb/gdbserver/linux-low.h
@@ -38,6 +38,11 @@ enum regset_type {
   EXTENDED_REGS,
 };
 
+/* The arch's regsets array initializer must be terminated with a NULL
+   regset.  */
+#define NULL_REGSET \
+  { 0, 0, 0, -1, (enum regset_type) -1, NULL, NULL }
+
 struct regset_info
 {
   int get_request, set_request;
diff --git a/gdb/gdbserver/linux-m68k-low.c b/gdb/gdbserver/linux-m68k-low.c
index ba8e5e9..10129a6 100644
--- a/gdb/gdbserver/linux-m68k-low.c
+++ b/gdb/gdbserver/linux-m68k-low.c
@@ -119,7 +119,7 @@ static struct regset_info m68k_regsets[] = {
     FP_REGS,
     m68k_fill_fpregset, m68k_store_fpregset },
 #endif /* HAVE_PTRACE_GETREGS */
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static const gdb_byte m68k_breakpoint[] = { 0x4E, 0x4F };
diff --git a/gdb/gdbserver/linux-mips-low.c b/gdb/gdbserver/linux-mips-low.c
index 344d7a5..86f7962 100644
--- a/gdb/gdbserver/linux-mips-low.c
+++ b/gdb/gdbserver/linux-mips-low.c
@@ -837,7 +837,7 @@ static struct regset_info mips_regsets[] = {
   { PTRACE_GETFPREGS, PTRACE_SETFPREGS, 0, 33 * 8, FP_REGS,
     mips_fill_fpregset, mips_store_fpregset },
 #endif /* HAVE_PTRACE_GETREGS */
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct regsets_info mips_regsets_info =
diff --git a/gdb/gdbserver/linux-nios2-low.c b/gdb/gdbserver/linux-nios2-low.c
index 95a2d9e..369e89c 100644
--- a/gdb/gdbserver/linux-nios2-low.c
+++ b/gdb/gdbserver/linux-nios2-low.c
@@ -239,7 +239,7 @@ static struct regset_info nios2_regsets[] =
   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS,
     nios2_num_regs * 4, GENERAL_REGS,
     nios2_fill_gregset, nios2_store_gregset },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct regsets_info nios2_regsets_info =
diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
index 6e6a936..9e223ea 100644
--- a/gdb/gdbserver/linux-ppc-low.c
+++ b/gdb/gdbserver/linux-ppc-low.c
@@ -657,7 +657,7 @@ static struct regset_info ppc_regsets[] = {
   { PTRACE_GETEVRREGS, PTRACE_SETEVRREGS, 0, 32 * 4 + 8 + 4, EXTENDED_REGS,
     ppc_fill_evrregset, ppc_store_evrregset },
   { 0, 0, 0, 0, GENERAL_REGS, ppc_fill_gregset, NULL },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct usrregs_info ppc_usrregs_info =
diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c
index 2ba1221..efede2d 100644
--- a/gdb/gdbserver/linux-s390-low.c
+++ b/gdb/gdbserver/linux-s390-low.c
@@ -390,7 +390,7 @@ static struct regset_info s390_regsets[] = {
     EXTENDED_REGS, s390_fill_vxrs_low, s390_store_vxrs_low },
   { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_S390_VXRS_HIGH, 0,
     EXTENDED_REGS, s390_fill_vxrs_high, s390_store_vxrs_high },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 
diff --git a/gdb/gdbserver/linux-sh-low.c b/gdb/gdbserver/linux-sh-low.c
index f7f3239..207e87e 100644
--- a/gdb/gdbserver/linux-sh-low.c
+++ b/gdb/gdbserver/linux-sh-low.c
@@ -114,7 +114,7 @@ static void sh_fill_gregset (struct regcache *regcache, void *buf)
 
 static struct regset_info sh_regsets[] = {
   { 0, 0, 0, 0, GENERAL_REGS, sh_fill_gregset, NULL },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct regsets_info sh_regsets_info =
diff --git a/gdb/gdbserver/linux-sparc-low.c b/gdb/gdbserver/linux-sparc-low.c
index 0691867..e6a4f84 100644
--- a/gdb/gdbserver/linux-sparc-low.c
+++ b/gdb/gdbserver/linux-sparc-low.c
@@ -291,7 +291,7 @@ static struct regset_info sparc_regsets[] = {
   { PTRACE_GETFPREGS, PTRACE_SETFPREGS, 0, sizeof (fpregset_t),
     FP_REGS,
     sparc_fill_fpregset, sparc_store_fpregset },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct regsets_info sparc_regsets_info =
diff --git a/gdb/gdbserver/linux-tic6x-low.c b/gdb/gdbserver/linux-tic6x-low.c
index d9476fd..cf8b5fb 100644
--- a/gdb/gdbserver/linux-tic6x-low.c
+++ b/gdb/gdbserver/linux-tic6x-low.c
@@ -332,7 +332,7 @@ tic6x_store_gregset (struct regcache *regcache, const void *buf)
 static struct regset_info tic6x_regsets[] = {
   { PTRACE_GETREGS, PTRACE_SETREGS, 0, TIC6X_NUM_REGS * 4, GENERAL_REGS,
     tic6x_fill_gregset, tic6x_store_gregset },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static void
diff --git a/gdb/gdbserver/linux-tile-low.c b/gdb/gdbserver/linux-tile-low.c
index e31a620..47ca245 100644
--- a/gdb/gdbserver/linux-tile-low.c
+++ b/gdb/gdbserver/linux-tile-low.c
@@ -135,7 +135,7 @@ static struct regset_info tile_regsets[] =
 {
   { PTRACE_GETREGS, PTRACE_SETREGS, 0, tile_num_regs * 8,
     GENERAL_REGS, tile_fill_gregset, tile_store_gregset },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static struct regsets_info tile_regsets_info =
diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
index 406d552..89ec4e5 100644
--- a/gdb/gdbserver/linux-x86-low.c
+++ b/gdb/gdbserver/linux-x86-low.c
@@ -463,7 +463,7 @@ static struct regset_info x86_regsets[] =
     FP_REGS,
     x86_fill_fpregset, x86_store_fpregset },
 #endif /* HAVE_PTRACE_GETREGS */
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 static CORE_ADDR
diff --git a/gdb/gdbserver/linux-xtensa-low.c b/gdb/gdbserver/linux-xtensa-low.c
index fa6f418..7c71631 100644
--- a/gdb/gdbserver/linux-xtensa-low.c
+++ b/gdb/gdbserver/linux-xtensa-low.c
@@ -142,7 +142,7 @@ static struct regset_info xtensa_regsets[] = {
   { PTRACE_GETXTREGS, PTRACE_SETXTREGS, 0, XTENSA_ELF_XTREG_SIZE,
     EXTENDED_REGS,
     xtensa_fill_xtregset, xtensa_store_xtregset },
-  { 0, 0, 0, -1, -1, NULL, NULL }
+  NULL_REGSET
 };
 
 #if XCHAL_HAVE_BE
-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 4/7] gdbserver: btrace enums
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
                   ` (2 preceding siblings ...)
  2015-10-28 17:10 ` [PATCH 3/7] gdbserver/Linux: Introduce NULL_REGSET Pedro Alves
@ 2015-10-28 17:20 ` Pedro Alves
  2015-10-28 18:46   ` Metzger, Markus T
  2015-10-28 17:44 ` [PATCH 5/7] gdbserver: enum gdb_signal casts Pedro Alves
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 17:20 UTC (permalink / raw)
  To: gdb-patches

Fixes:

 ../../../src/gdb/gdbserver/linux-low.c: In function ‘int linux_low_read_btrace(btrace_target_info*, buffer*, int)’:
 ../../../src/gdb/gdbserver/linux-low.c:6827:48: error: invalid conversion from ‘int’ to ‘btrace_read_type’ [-fpermissive]
    err = linux_read_btrace (&btrace, tinfo, type);
						 ^
 In file included from ../../../src/gdb/gdbserver/linux-low.c:98:0:
 ../../../src/gdb/gdbserver/../nat/linux-btrace.h:116:26: error:   initializing argument 3 of ‘btrace_error linux_read_btrace(btrace_data*, btrace_target_info*, btrace_read_type)’ [-fpermissive]
  extern enum btrace_error linux_read_btrace (struct btrace_data *btrace,
			   ^

I didn't spot the cyclic dependency the comment talks about.

gdb/ChangeLog:
2015-10-28  Pedro Alves  <palves@redhat.com>

	* linux-low.c (linux_low_read_btrace): Change type of 'type'
	parameter.
	* server.c (handle_qxfer_btrace): Change type of 'type'
	local.
	* target.h (struct target_ops) <read_btrace>: Change type of
	'type' parameter.  Update comment.
---
 gdb/gdbserver/linux-low.c | 2 +-
 gdb/gdbserver/server.c    | 3 ++-
 gdb/gdbserver/target.h    | 6 +++---
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index e778c4c..41ab510 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -6815,7 +6815,7 @@ linux_low_encode_raw (struct buffer *buffer, const gdb_byte *data,
 
 static int
 linux_low_read_btrace (struct btrace_target_info *tinfo, struct buffer *buffer,
-		       int type)
+		       enum btrace_read_type type)
 {
   struct btrace_data btrace;
   struct btrace_block *block;
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index ad6626e..024399d 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -1608,7 +1608,8 @@ handle_qxfer_btrace (const char *annex,
 {
   static struct buffer cache;
   struct thread_info *thread;
-  int type, result;
+  enum btrace_read_type type;
+  int result;
 
   if (the_target->read_btrace == NULL || writebuf != NULL)
     return -2;
diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
index a14c6ff..769c876 100644
--- a/gdb/gdbserver/target.h
+++ b/gdb/gdbserver/target.h
@@ -399,11 +399,11 @@ struct target_ops
      Returns zero on success, non-zero otherwise.  */
   int (*disable_btrace) (struct btrace_target_info *tinfo);
 
-  /* Read branch trace data into buffer.  We use an int to specify the type
-     to break a cyclic dependency.
+  /* Read branch trace data into buffer.
      Return 0 on success; print an error message into BUFFER and return -1,
      otherwise.  */
-  int (*read_btrace) (struct btrace_target_info *, struct buffer *, int type);
+  int (*read_btrace) (struct btrace_target_info *, struct buffer *,
+		      enum btrace_read_type type);
 
   /* Read the branch trace configuration into BUFFER.
      Return 0 on success; print an error message into BUFFER and return -1
-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 5/7] gdbserver: enum gdb_signal casts
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
                   ` (3 preceding siblings ...)
  2015-10-28 17:20 ` [PATCH 4/7] gdbserver: btrace enums Pedro Alves
@ 2015-10-28 17:44 ` Pedro Alves
  2015-10-28 17:57 ` [PATCH 2/7] Add cast to exception_none Pedro Alves
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 17:44 UTC (permalink / raw)
  To: gdb-patches

This is code parsing RSP signal numbers, checking whether the numbers
are indeed valid/known GDB signals, and then converting to host signal
numbers.  I considered adding temporary enum gdb_signal variables
instead, but didn't really like the result.

gdb/gdbserver/ChangeLog:
2015-10-27  Pedro Alves  <palves@redhat.com>

	* server.c (handle_v_cont, process_serial_event): Add enum
	gdb_signal casts to signal parsing code.
---
 gdb/gdbserver/server.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 024399d..3232da1 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -2555,9 +2555,9 @@ handle_v_cont (char *own_buf)
 	    goto err;
 	  p = q;
 
-	  if (!gdb_signal_to_host_p (sig))
+	  if (!gdb_signal_to_host_p ((enum gdb_signal) sig))
 	    goto err;
-	  resume_info[i].sig = gdb_signal_to_host (sig);
+	  resume_info[i].sig = gdb_signal_to_host ((enum gdb_signal) sig);
 	}
       else if (p[0] == 'r')
 	{
@@ -4039,8 +4039,8 @@ process_serial_event (void)
     case 'C':
       require_running (own_buf);
       hex2bin (own_buf + 1, &sig, 1);
-      if (gdb_signal_to_host_p (sig))
-	signal = gdb_signal_to_host (sig);
+      if (gdb_signal_to_host_p ((enum gdb_signal) sig))
+	signal = gdb_signal_to_host ((enum gdb_signal) sig);
       else
 	signal = 0;
       myresume (own_buf, 0, signal);
@@ -4048,8 +4048,8 @@ process_serial_event (void)
     case 'S':
       require_running (own_buf);
       hex2bin (own_buf + 1, &sig, 1);
-      if (gdb_signal_to_host_p (sig))
-	signal = gdb_signal_to_host (sig);
+      if (gdb_signal_to_host_p ((enum gdb_signal) sig))
+	signal = gdb_signal_to_host ((enum gdb_signal) sig);
       else
 	signal = 0;
       myresume (own_buf, 1, signal);
-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 2/7] Add cast to exception_none
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
                   ` (4 preceding siblings ...)
  2015-10-28 17:44 ` [PATCH 5/7] gdbserver: enum gdb_signal casts Pedro Alves
@ 2015-10-28 17:57 ` Pedro Alves
  2015-10-28 18:24 ` [PATCH 7/7] gdbserver/mem-break.c: Add cast Pedro Alves
  2015-10-29 15:32 ` [PATCH 0/7] C++ patches Pedro Alves
  7 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 17:57 UTC (permalink / raw)
  To: gdb-patches

Fixes, in C++ mode:

 ../../src/gdb/common/common-exceptions.c:23:69: error: invalid conversion from ‘int’ to ‘return_reason’ [-fpermissive]
  const struct gdb_exception exception_none = { 0, GDB_NO_ERROR, NULL };
								      ^

(I considered adding an enum value for '0', but the code and comments
around return_reason and its uses explain how 0 is special/internal,
so I'm leaving it be.)

gdb/ChangeLog:
2015-10-27  Pedro Alves  <palves@redhat.com>

	* common/common-exceptions.c (exception_none): Add cast.
---
 gdb/common/common-exceptions.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gdb/common/common-exceptions.c b/gdb/common/common-exceptions.c
index 8ee96ab..ce476a2 100644
--- a/gdb/common/common-exceptions.c
+++ b/gdb/common/common-exceptions.c
@@ -20,7 +20,7 @@
 #include "common-defs.h"
 #include "common-exceptions.h"
 
-const struct gdb_exception exception_none = { 0, GDB_NO_ERROR, NULL };
+const struct gdb_exception exception_none = { (enum return_reason) 0, GDB_NO_ERROR, NULL };
 
 #ifndef __cplusplus
 
-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 7/7] gdbserver/mem-break.c: Add cast
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
                   ` (5 preceding siblings ...)
  2015-10-28 17:57 ` [PATCH 2/7] Add cast to exception_none Pedro Alves
@ 2015-10-28 18:24 ` Pedro Alves
  2015-10-29 15:32 ` [PATCH 0/7] C++ patches Pedro Alves
  7 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-28 18:24 UTC (permalink / raw)
  To: gdb-patches

... for C++.

Fixes:

 gdb/gdbserver/mem-break.c:204:28: error: invalid conversion from 'int' to 'bkpt_type' [-fpermissive]

gdb/ChangeLog:
2015-10-27  Pedro Alves  <palves@redhat.com>

	* mem-break.c (Z_packet_to_bkpt_type): Add cast.
---
 gdb/gdbserver/mem-break.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c
index 656402a..c808a84 100644
--- a/gdb/gdbserver/mem-break.c
+++ b/gdb/gdbserver/mem-break.c
@@ -241,7 +241,7 @@ Z_packet_to_bkpt_type (char z_type)
 {
   gdb_assert ('0' <= z_type && z_type <= '4');
 
-  return gdb_breakpoint_Z0 + (z_type - '0');
+  return (enum bkpt_type) (gdb_breakpoint_Z0 + (z_type - '0'));
 }
 
 /* See mem-break.h.  */
-- 
1.9.3


^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: [PATCH 4/7] gdbserver: btrace enums
  2015-10-28 17:20 ` [PATCH 4/7] gdbserver: btrace enums Pedro Alves
@ 2015-10-28 18:46   ` Metzger, Markus T
  2015-10-29 14:42     ` Pedro Alves
  0 siblings, 1 reply; 11+ messages in thread
From: Metzger, Markus T @ 2015-10-28 18:46 UTC (permalink / raw)
  To: Pedro Alves, gdb-patches

> -----Original Message-----
> From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] On Behalf Of Pedro Alves
> Sent: Wednesday, October 28, 2015 3:59 PM
> To: gdb-patches@sourceware.org
> Subject: [PATCH 4/7] gdbserver: btrace enums

Hello Pedro,

>  ../../../src/gdb/gdbserver/linux-low.c: In function ‘int
> linux_low_read_btrace(btrace_target_info*, buffer*, int)’:
>  ../../../src/gdb/gdbserver/linux-low.c:6827:48: error: invalid conversion from
> ‘int’ to ‘btrace_read_type’ [-fpermissive]
>     err = linux_read_btrace (&btrace, tinfo, type);
> 						 ^
>  In file included from ../../../src/gdb/gdbserver/linux-low.c:98:0:
>  ../../../src/gdb/gdbserver/../nat/linux-btrace.h:116:26: error:   initializing
> argument 3 of ‘btrace_error linux_read_btrace(btrace_data*,
> btrace_target_info*, btrace_read_type)’ [-fpermissive]
>   extern enum btrace_error linux_read_btrace (struct btrace_data *btrace,
> 			   ^
> 
> I didn't spot the cyclic dependency the comment talks about.

At that time, you had to include server.h/defs.h before vec.h.  So I couldn't
include btrace-common.h (which includes vec.h and also server.h) into target.h,
which was in turn included in server.h.


The patch looks good to me.

Thanks,
Markus.

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Prof. Dr. Hermann Eul
Chairperson of the Supervisory Board: Tiffany Doon Silva
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 4/7] gdbserver: btrace enums
  2015-10-28 18:46   ` Metzger, Markus T
@ 2015-10-29 14:42     ` Pedro Alves
  0 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-29 14:42 UTC (permalink / raw)
  To: Metzger, Markus T, gdb-patches

On 10/28/2015 03:29 PM, Metzger, Markus T wrote:
>> -----Original Message-----
>> From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
>> owner@sourceware.org] On Behalf Of Pedro Alves
>> Sent: Wednesday, October 28, 2015 3:59 PM
>> To: gdb-patches@sourceware.org
>> Subject: [PATCH 4/7] gdbserver: btrace enums
> 
> Hello Pedro,

Hi Markus,

> 
>>  ../../../src/gdb/gdbserver/linux-low.c: In function ‘int
>> linux_low_read_btrace(btrace_target_info*, buffer*, int)’:
>>  ../../../src/gdb/gdbserver/linux-low.c:6827:48: error: invalid conversion from
>> ‘int’ to ‘btrace_read_type’ [-fpermissive]
>>     err = linux_read_btrace (&btrace, tinfo, type);
>> 						 ^
>>  In file included from ../../../src/gdb/gdbserver/linux-low.c:98:0:
>>  ../../../src/gdb/gdbserver/../nat/linux-btrace.h:116:26: error:   initializing
>> argument 3 of ‘btrace_error linux_read_btrace(btrace_data*,
>> btrace_target_info*, btrace_read_type)’ [-fpermissive]
>>   extern enum btrace_error linux_read_btrace (struct btrace_data *btrace,
>> 			   ^
>>
>> I didn't spot the cyclic dependency the comment talks about.
> 
> At that time, you had to include server.h/defs.h before vec.h.  So I couldn't
> include btrace-common.h (which includes vec.h and also server.h) into target.h,
> which was in turn included in server.h.
> 
> 
> The patch looks good to me.

Thanks.  I updated the git log to point to your explanation here, and
pushed this in.

Thanks.

---
Subject: [PATCH] gdbserver: btrace enums

Fixes:

 ../../../src/gdb/gdbserver/linux-low.c: In function ‘int linux_low_read_btrace(btrace_target_info*, buffer*, int)’:
 ../../../src/gdb/gdbserver/linux-low.c:6827:48: error: invalid conversion from ‘int’ to ‘btrace_read_type’ [-fpermissive]
    err = linux_read_btrace (&btrace, tinfo, type);
						 ^
 In file included from ../../../src/gdb/gdbserver/linux-low.c:98:0:
 ../../../src/gdb/gdbserver/../nat/linux-btrace.h:116:26: error:   initializing argument 3 of ‘btrace_error linux_read_btrace(btrace_data*, btrace_target_info*, btrace_read_type)’ [-fpermissive]
  extern enum btrace_error linux_read_btrace (struct btrace_data *btrace,
			   ^

The cyclic dependency the comment talks about is no longer relevant:
  https://sourceware.org/ml/gdb-patches/2015-10/msg00643.html

gdb/gdbserver/ChangeLog:
2015-10-29  Pedro Alves  <palves@redhat.com>

	* linux-low.c (linux_low_read_btrace): Change type of 'type'
	parameter.
	* server.c (handle_qxfer_btrace): Change type of 'type'
	local.
	* target.h (struct target_ops) <read_btrace>: Change type of
	'type' parameter.  Update comment.
---
 gdb/gdbserver/ChangeLog   | 18 ++++++++++++++++++
 gdb/gdbserver/linux-low.c |  2 +-
 gdb/gdbserver/server.c    |  3 ++-
 gdb/gdbserver/target.h    |  6 +++---
 4 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 0dfecf1..9b8a7d7 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -16,6 +16,24 @@
 	* linux-x86-low.c (x86_regsets): Likewise.
 	* linux-xtensa-low.c (xtensa_regsets): Likewise.
 
+2015-10-29  Pedro Alves  <palves@redhat.com>
+
+	* linux-low.h (NULL_REGSET): Define.
+	* linux-aarch64-low.c (aarch64_regsets): Use NULL_REGSET.
+	* linux-arm-low.c (arm_regsets): Likewise.
+	* linux-crisv32-low.c (cris_regsets): Likewise.
+	* linux-m68k-low.c (m68k_regsets): Likewise.
+	* linux-mips-low.c (mips_regsets): Likewise.
+	* linux-nios2-low.c (nios2_regsets): Likewise.
+	* linux-ppc-low.c (ppc_regsets): Likewise.
+	* linux-s390-low.c (s390_regsets): Likewise.
+	* linux-sh-low.c (sh_regsets): Likewise.
+	* linux-sparc-low.c (sparc_regsets): Likewise.
+	* linux-tic6x-low.c (tic6x_regsets): Likewise.
+	* linux-tile-low.c (tile_regsets): Likewise.
+	* linux-x86-low.c (x86_regsets): Likewise.
+	* linux-xtensa-low.c (xtensa_regsets): Likewise.
+
 2015-10-26  Doug Evans  <dje@google.com>
 
 	* linux-low.c (__SIGRTMIN): Move to nat/linux-nat.h.
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index e778c4c..41ab510 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -6815,7 +6815,7 @@ linux_low_encode_raw (struct buffer *buffer, const gdb_byte *data,
 
 static int
 linux_low_read_btrace (struct btrace_target_info *tinfo, struct buffer *buffer,
-		       int type)
+		       enum btrace_read_type type)
 {
   struct btrace_data btrace;
   struct btrace_block *block;
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index ad6626e..024399d 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -1608,7 +1608,8 @@ handle_qxfer_btrace (const char *annex,
 {
   static struct buffer cache;
   struct thread_info *thread;
-  int type, result;
+  enum btrace_read_type type;
+  int result;
 
   if (the_target->read_btrace == NULL || writebuf != NULL)
     return -2;
diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
index a14c6ff..769c876 100644
--- a/gdb/gdbserver/target.h
+++ b/gdb/gdbserver/target.h
@@ -399,11 +399,11 @@ struct target_ops
      Returns zero on success, non-zero otherwise.  */
   int (*disable_btrace) (struct btrace_target_info *tinfo);
 
-  /* Read branch trace data into buffer.  We use an int to specify the type
-     to break a cyclic dependency.
+  /* Read branch trace data into buffer.
      Return 0 on success; print an error message into BUFFER and return -1,
      otherwise.  */
-  int (*read_btrace) (struct btrace_target_info *, struct buffer *, int type);
+  int (*read_btrace) (struct btrace_target_info *, struct buffer *,
+		      enum btrace_read_type type);
 
   /* Read the branch trace configuration into BUFFER.
      Return 0 on success; print an error message into BUFFER and return -1
-- 
1.9.3



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/7] C++ patches
  2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
                   ` (6 preceding siblings ...)
  2015-10-28 18:24 ` [PATCH 7/7] gdbserver/mem-break.c: Add cast Pedro Alves
@ 2015-10-29 15:32 ` Pedro Alves
  7 siblings, 0 replies; 11+ messages in thread
From: Pedro Alves @ 2015-10-29 15:32 UTC (permalink / raw)
  To: gdb-patches

On 10/28/2015 02:59 PM, Pedro Alves wrote:
> A few more GDB-in-C++ patches.
> 
> Pedro Alves (7):
>   compile: Rename struct type_map_instance::gcc_type field
>   Add cast to exception_none
>   gdbserver/Linux: Introduce NULL_REGSET
>   gdbserver: btrace enums
>   gdbserver: enum gdb_signal casts
>   gdbserver/tracepoint: Add casts out of tpoint->handle
>   gdbserver/mem-break.c: Add cast

Simon mentioned this looked good to him on irc, so I pushed it all in.

Thanks,
Pedro Alves


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-10-29 13:03 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-28 16:48 [PATCH 0/7] C++ patches Pedro Alves
2015-10-28 16:55 ` [PATCH 1/7] compile: Rename struct type_map_instance::gcc_type field Pedro Alves
2015-10-28 17:05 ` [PATCH 6/7] gdbserver/tracepoint: Add casts out of tpoint->handle Pedro Alves
2015-10-28 17:10 ` [PATCH 3/7] gdbserver/Linux: Introduce NULL_REGSET Pedro Alves
2015-10-28 17:20 ` [PATCH 4/7] gdbserver: btrace enums Pedro Alves
2015-10-28 18:46   ` Metzger, Markus T
2015-10-29 14:42     ` Pedro Alves
2015-10-28 17:44 ` [PATCH 5/7] gdbserver: enum gdb_signal casts Pedro Alves
2015-10-28 17:57 ` [PATCH 2/7] Add cast to exception_none Pedro Alves
2015-10-28 18:24 ` [PATCH 7/7] gdbserver/mem-break.c: Add cast Pedro Alves
2015-10-29 15:32 ` [PATCH 0/7] C++ patches Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox