Types Indices

All Symbol and Type records which reference records in the $$TYPES table must use valid non-zero type indices. For public symbols a type index of 0x0000 (T_NOTYPE) is permitted.

Since many types (relating to hardware and language primitives) are common, type index values less than 0x1000 (CV_FIRST_NONPRIM) are reserved for a set of predefined primitive types. A list of predefined types and their indices are defined in this document in Section 5. Type indices of 0x1000 and higher are used to index into the set of non-primitive type definitions in the module's $$TYPES segment. Thus 0x1000 is the first type, 0x1001 the second, and so on. Non-primitive type indices must be sequential and contain no gaps in the numbering. Type indices are now a 32-bit quantity and the valid range is 0x001000 to 0xffffff (224 - 1) with the top 8 bits reserved and must be 0.