removed warning and fixed two problems:
- remove_def was wrong, and parameter defs should not be removed at the end of a scope
This commit is contained in:
		
							parent
							
								
									4c26480d25
								
							
						
					
					
						commit
						8061bab6a9
					
				
					 3 changed files with 4 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -23,8 +23,8 @@ remove_def(df)
 | 
			
		|||
	else {
 | 
			
		||||
		while( df1 && df1->df_next != df ) df1 = df1->df_next;
 | 
			
		||||
		df1->df_next = df->df_next;
 | 
			
		||||
		free_def(df);
 | 
			
		||||
	}
 | 
			
		||||
	free_def(df);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct def *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ close_scope(doclean)
 | 
			
		|||
	df = CurrentScope->sc_def;
 | 
			
		||||
	if (doclean) while (df) {
 | 
			
		||||
		struct def *next = df->df_nextinscope;
 | 
			
		||||
		remove_def(df);
 | 
			
		||||
		if (! (df->df_flags & (D_VARPAR|D_VALPAR))) remove_def(df);
 | 
			
		||||
		df = next;
 | 
			
		||||
	}
 | 
			
		||||
	CurrVis = CurrVis->next;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -86,8 +86,10 @@ TstCompat(tp1, tp2)
 | 
			
		|||
		if( IsPacked(tp1) != IsPacked(tp2) )
 | 
			
		||||
			return 0;
 | 
			
		||||
		if( TstCompat(ElementType(tp1), ElementType(tp2)) )	{
 | 
			
		||||
			/*
 | 
			
		||||
			if( ElementType(tp1) != ElementType(tp2) )
 | 
			
		||||
				warning("base-types of sets not equal");
 | 
			
		||||
			*/
 | 
			
		||||
			return 1;
 | 
			
		||||
		}
 | 
			
		||||
		else return 0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue