mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 02:39:40 +01:00 
			
		
		
		
	* fixed copying order of callnode siblings (callcleanupblock must be
copied before funcretnode because it may contain tempdeletenodes
    that turn a temp to "delete on next use", with the use in the
    funcretnode)
git-svn-id: branches/jvmbackend@20141 -
			
			
This commit is contained in:
		
							parent
							
								
									c9f19d710b
								
							
						
					
					
						commit
						7f15423d76
					
				@ -1334,14 +1334,18 @@ implementation
 | 
			
		||||
          n.methodpointer:=methodpointer.dogetcopy
 | 
			
		||||
        else
 | 
			
		||||
          n.methodpointer:=nil;
 | 
			
		||||
        if assigned(funcretnode) then
 | 
			
		||||
          n.funcretnode:=funcretnode.dogetcopy
 | 
			
		||||
        else
 | 
			
		||||
          n.funcretnode:=nil;
 | 
			
		||||
        { must be copied before the funcretnode, because the callcleanup block
 | 
			
		||||
          may contain a ttempdeletenode that sets the tempinfo of the
 | 
			
		||||
          corresponding temp to ti_nextref_set_hookoncopy_nil, and this nextref
 | 
			
		||||
          itself may be the funcretnode }
 | 
			
		||||
        if assigned(callcleanupblock) then
 | 
			
		||||
          n.callcleanupblock:=tblocknode(callcleanupblock.dogetcopy)
 | 
			
		||||
        else
 | 
			
		||||
          n.callcleanupblock:=nil;
 | 
			
		||||
        if assigned(funcretnode) then
 | 
			
		||||
          n.funcretnode:=funcretnode.dogetcopy
 | 
			
		||||
        else
 | 
			
		||||
          n.funcretnode:=nil;
 | 
			
		||||
        if assigned(varargsparas) then
 | 
			
		||||
         begin
 | 
			
		||||
           n.varargsparas:=tvarargsparalist.create(true);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user