A method, apparatus, and computer instructions in a processor for
associating a data type with a memory location. The type is associated
with a location by means of metadata that is generated and manipulated by
hardware instructions that are typically generated by a compiler as it
generates the other instructions that comprise the machine code version
of a program. A determination is made as to whether a data value about to
be stored is of the required data type for that location. The hardware
indicates an error condition if the types do not match.