Passing a variable as an argument to a parameter by reference allows the argument's allocated storage to be referenced using the parameter. The codice_166 attribute (e.g. codice_167) allows part or all of a variable's storage to be used with a different, but consistent, declaration. The language definition includes a codice_46 attribute (later renamed codice_34) to allow different definitions of data to share the same storage. This was not supported by many early IBM compilers. These usages are safe and machine independent.