This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Don't coerce arrays if they're vectors.
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: Michael Snyder <msnyder at cygnus dot com>
- Cc: gdb-patches at sources dot redhat dot com, ezannoni at redhat dot com
- Date: Thu, 16 May 2002 19:43:53 -0400
- Subject: Re: [RFA] Don't coerce arrays if they're vectors.
- References: <200205162224.g4GMOmD22402@reddwarf.sfbay.redhat.com>
Michael Snyder writes:
Which problem does this fix? i.e. which call(s) of value_cast?
Elena
>
> This seem reasonable to you vector-savvy folk?
>
> Michael
>
> 2002-05-16 Michael Snyder <msnyder@redhat.com>
>
> * valops.c (value_cast): Don't coerce arrays if they're vectors.
>
> Index: valops.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/valops.c,v
> retrieving revision 1.59
> diff -p -r1.59 valops.c
> *** valops.c 13 May 2002 14:00:36 -0000 1.59
> --- valops.c 16 May 2002 22:32:40 -0000
> *************** value_cast (struct type *type, struct va
> *** 210,217 ****
> }
> }
>
> if (current_language->c_style_arrays
> ! && TYPE_CODE (type2) == TYPE_CODE_ARRAY)
> arg2 = value_coerce_array (arg2);
>
> if (TYPE_CODE (type2) == TYPE_CODE_FUNC)
> --- 210,221 ----
> }
> }
>
> + /* 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_CODE (type2) == TYPE_CODE_ARRAY
> ! && !TYPE_VECTOR (type2))
> arg2 = value_coerce_array (arg2);
>
> if (TYPE_CODE (type2) == TYPE_CODE_FUNC)