* gdbtypes.h (TYPE_CODE_ARRAY): Doc fix.
authorJim Blandy <jimb@codesourcery.com>
Wed, 25 Aug 2004 15:41:54 +0000 (15:41 +0000)
committerJim Blandy <jimb@codesourcery.com>
Wed, 25 Aug 2004 15:41:54 +0000 (15:41 +0000)
gdb/ChangeLog
gdb/gdbtypes.h

index 90ebbe525a29dc008f5fd3f7f29c2aa8924fc25d..7decaadd6f21add9c60bb59f5f35479d57645a34 100644 (file)
@@ -1,3 +1,7 @@
+2004-08-25  Jim Blandy  <jimb@redhat.com>
+
+       * gdbtypes.h (TYPE_CODE_ARRAY): Doc fix.
+
 2004-08-25  Andrew Cagney  <cagney@gnu.org>
 
        * infrun.c (struct execution_control_state): Delete field
index 3f90f6c3f06f67bb2e58f9e5dba99b445b2a261e..4f95e136707f4af7d31fd83117814341b66376fa 100644 (file)
@@ -82,7 +82,27 @@ enum type_code
   {
     TYPE_CODE_UNDEF,           /* Not used; catches errors */
     TYPE_CODE_PTR,             /* Pointer type */
-    TYPE_CODE_ARRAY,           /* Array type with lower & upper bounds. */
+
+    /* 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 */