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.
 |