From b1028c8e8f281d1072e1fd89d8083cb960598a1a Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Thu, 11 Feb 2010 18:24:57 +0000
Subject: [PATCH] 	* ax-gdb.c (gen_deref): Don't allow dereferencing void
 pointers.

---
 gdb/ChangeLog | 4 ++++
 gdb/ax-gdb.c  | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index acd65e83c84..ddf66153dbf 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2010-02-11  Pedro Alves  <pedro@codesourcery.com>
+
+	* ax-gdb.c (gen_deref): Don't allow dereferencing void pointers.
+
 2010-02-11  Vladimir Prus  <vladimir@codesourcery.com>
 
 	* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Add extra
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
index 5776bb0ce6d..eb532384ca6 100644
--- a/gdb/ax-gdb.c
+++ b/gdb/ax-gdb.c
@@ -1082,6 +1082,8 @@ gen_deref (struct agent_expr *ax, struct axs_value *value)
      T" to "T", and mark the value as an lvalue in memory.  Leave it
      to the consumer to actually dereference it.  */
   value->type = check_typedef (TYPE_TARGET_TYPE (value->type));
+  if (TYPE_CODE (value->type) == TYPE_CODE_VOID)
+    error (_("Attempt to dereference a generic pointer."));
   value->kind = ((TYPE_CODE (value->type) == TYPE_CODE_FUNC)
 		 ? axs_rvalue : axs_lvalue_memory);
 }
-- 
GitLab