aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2006-09-10 15:44:36 +0000
committerDaniel Jacobowitz <drow@false.org>2006-09-10 15:44:36 +0000
commit4c8508101163caf4d851d20d96dca2d77635b382 (patch)
treef21fc9b4f0f7ff2ec3e937f3dc4265df9ee704d1
parenta4697170c74a4b15f7f77910207d7ae4ccd6d39f (diff)
downloadbinutils-4c8508101163caf4d851d20d96dca2d77635b382.zip
binutils-4c8508101163caf4d851d20d96dca2d77635b382.tar.gz
binutils-4c8508101163caf4d851d20d96dca2d77635b382.tar.bz2
* infcall.c (call_function_by_hand): Check for function pointer
types.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infcall.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ec35909..a652321 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-10 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * infcall.c (call_function_by_hand): Check for function pointer
+ types.
+
2006-09-10 Andreas Schwab <schwab@suse.de>
* m68k-tdep.c (m68k_analyze_register_saves): Fix decoding of
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 3a1ad6a..9f12896 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -336,6 +336,9 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
struct cleanup *caller_regcache_cleanup;
struct frame_id dummy_id;
+ if (TYPE_CODE (ftype) == TYPE_CODE_PTR)
+ ftype = check_typedef (TYPE_TARGET_TYPE (ftype));
+
if (!target_has_execution)
noprocess ();