In SUIF, variable symbols represent data objects. Variable symbols
are represented by objects of the var_sym
class. This class
adds a field to specify the type of the variable as well as some
additional flags. Unlike procedures and labels, variables may be
defined in any scope.
SUIF provides optional sub-variables to make it easier to deal with pieces of aggregate objects that may or may not overlap, in particular Fortran equivalences and reshaped common blocks. Instead of referring to a piece of an aggregate by an offset combined with the aggregate symbol, a sub-variable can be created to represent the data at a particular offset within the aggregate, so that it can be referenced in the same way as if it were not contained within an aggregate structure.