.NH 2 Pointers and subroutine calls .PP The theory outlined above assumes that variables can only be changed by a direct assignment. This condition does not hold for EM. In case of an assignment through a pointer variable, it is in general impossible to see which variable is affected by the assignment. Similar problems occur in the presence of procedure calls. Therefore we distinguish two kinds of definitions: .IP - an \fIexplicit\fR definition is a direct assignment to one specific variable .IP - an \fIimplicit\fR definition is the potential alteration of a variable as a result of a procedure call or an indirect assignment. .LP An indirect assignment causes implicit definitions to all variables that may be accessed indirectly, i.e. all local variables for which no register message was generated and all global variables. If a procedure contains an indirect assignment it may change the same set of variables, else it may change some global variables directly. The KILL, GEN, IN and OUT sets contain explicit as well as implicit definitions.