This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
gdb/749: Don't coerce arrays if they're vectors
- From: ac131313 at redhat dot com
- To: gdb-gnats at sources dot redhat dot com
- Cc: msnyder at redhat dot com, ezannoni at redhat dot com
- Date: 27 Sep 2002 21:18:17 -0000
- Subject: gdb/749: Don't coerce arrays if they're vectors
- Reply-to: ac131313 at redhat dot com
>Number: 749
>Category: gdb
>Synopsis: Don't coerce arrays if they're vectors
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Sep 27 14:28:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: ac131313@redhat.com
>Release: unknown-1.0
>Organization:
>Environment:
>Description:
MichaelS writes:
Michael Snyder wrote:
>
> Elena Zannoni wrote:
> >
> > Michael Snyder writes:
> >
> > Which problem does this fix? i.e. which call(s) of value_cast?
> >
> > Elena
>
> It gets called when I do "print foo(vec_arg)".
Elena, this thread got dropped. Do you think this change is OK?
>
> >
> > >
> > > 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)
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: