aboutsummaryrefslogtreecommitdiff
path: root/gdb/valops.c
diff options
context:
space:
mode:
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>2002-05-02 19:00:36 +0000
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>2002-05-02 19:00:36 +0000
commita3162708dff65adaab2aa54e962f8b8c4b9aae7f (patch)
treef2f6341c5bb20b34a8982d73ef0b2920318f1be9 /gdb/valops.c
parent84de6048cc4c90cb3fb9905bb2472956feb18c28 (diff)
downloadgdb-a3162708dff65adaab2aa54e962f8b8c4b9aae7f.zip
gdb-a3162708dff65adaab2aa54e962f8b8c4b9aae7f.tar.gz
gdb-a3162708dff65adaab2aa54e962f8b8c4b9aae7f.tar.bz2
2002-05-02 Elena Zannoni <ezannoni@redhat.com>
* valops.c (value_arg_coerce): Don't coerce arrays to pointers if we are dealing with vectors.
Diffstat (limited to 'gdb/valops.c')
-rw-r--r--gdb/valops.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gdb/valops.c b/gdb/valops.c
index 86c3112..146f1a6 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -1190,8 +1190,12 @@ value_arg_coerce (struct value *arg, struct type *param_type,
type = lookup_pointer_type (type);
break;
case TYPE_CODE_ARRAY:
+ /* Arrays are coerced to pointers to their first element, unless
+ they are vectors, in which case we want to leave them alone,
+ because they are passed by value. */
if (current_language->c_style_arrays)
- type = lookup_pointer_type (TYPE_TARGET_TYPE (type));
+ if (!TYPE_VECTOR (type))
+ type = lookup_pointer_type (TYPE_TARGET_TYPE (type));
break;
case TYPE_CODE_UNDEF:
case TYPE_CODE_PTR: