26 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
.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.
 |