This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH/RFA] PR gdb/648 (eval.c approval reqd)


Hi Jim, 

Yes, that's correct.  

Cheers
David

On Wed, 2004-08-25 at 06:52, Jim Blandy wrote:
> So, I'm just trying to get my head around what's going on here.  Would
> you say the following comment change would be correct?
> 
> *** gdbtypes.h.~1.58.~	2004-08-09 17:42:14.000000000 -0500
> --- gdbtypes.h	2004-08-25 00:51:03.000000000 -0500
> *************** enum type_code
> *** 82,88 ****
>     {
>       TYPE_CODE_UNDEF,		/* Not used; catches errors */
>       TYPE_CODE_PTR,		/* Pointer type */
> !     TYPE_CODE_ARRAY,		/* Array type with lower & upper bounds. */
>       TYPE_CODE_STRUCT,		/* C struct or Pascal record */
>       TYPE_CODE_UNION,		/* C union or Pascal variant part */
>       TYPE_CODE_ENUM,		/* Enumeration type */
> --- 82,108 ----
>     {
>       TYPE_CODE_UNDEF,		/* Not used; catches errors */
>       TYPE_CODE_PTR,		/* Pointer type */
> ! 
> !     /* Array type with lower & upper bounds.
> ! 
> !        Regardless of the language, GDB represents multidimensional
> !        array types the way C does: as arrays of arrays.  So an
> !        instance of a GDB array type T can always be seen as a series
> !        of instances of TYPE_TARGET_TYPE (T) laid out sequentially in
> !        memory.
> ! 
> !        Row-major languages like C lay out multi-dimensional arrays so
> !        that incrementing the rightmost index in a subscripting
> !        expression results in the smallest change in the address of the
> !        element referred to.  Column-major languages like Fortran lay
> !        them out so that incrementing the leftmost index results in the
> !        smallest change.
> ! 
> !        This means that, in column-major languages, working our way
> !        from type to target type corresponds to working through indices
> !        from right to left, not left to right.  */
> !     TYPE_CODE_ARRAY,
> ! 
>       TYPE_CODE_STRUCT,		/* C struct or Pascal record */
>       TYPE_CODE_UNION,		/* C union or Pascal variant part */
>       TYPE_CODE_ENUM,		/* Enumeration type */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]