Go forward to Arrays.
Go backward to Cross-References.
Go up to Types.

Subrange Types
==============

   The `r' type descriptor defines a type as a subrange of another
type.  It is followed by type information for the type of which it is a
subrange, a semicolon, an integral lower bound, a semicolon, an
integral upper bound, and a semicolon.  The AIX documentation does not
specify the trailing semicolon, in an effort to specify array indexes
more cleanly, but a subrange which is not an array index has always
included a trailing semicolon (see Arrays.).

   Instead of an integer, either bound can be one of the following:

`A OFFSET'
     The bound is passed by reference on the stack at offset OFFSET
     from the argument list.  See Parameters, for more information
     on such offsets.

`T OFFSET'
     The bound is passed by value on the stack at offset OFFSET from
     the argument list.

`a REGISTER-NUMBER'
     The bound is pased by reference in register number REGISTER-NUMBER.

`t REGISTER-NUMBER'
     The bound is passed by value in register number REGISTER-NUMBER.

`J'
     There is no bound.

   Subranges are also used for builtin types; see *Note Traditional
Builtin Types::.