Did not detect redeclaration of formal as local
This commit is contained in:
		
							parent
							
								
									3891c03e0e
								
							
						
					
					
						commit
						2838d446ef
					
				
					 1 changed files with 8 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -293,15 +293,17 @@ declare_idf(ds, dc, lvl)
 | 
			
		|||
#ifdef	LINT
 | 
			
		||||
	check_hiding(idf, lvl, sc);	/* of some idf by this idf */
 | 
			
		||||
#endif	LINT
 | 
			
		||||
	if (def && lvl == L_LOCAL && def->df_level == L_FORMAL2) {
 | 
			
		||||
		error("%s redeclared", idf->id_text);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((def && 
 | 
			
		||||
	if (def && 
 | 
			
		||||
	    ( def->df_level == lvl ||
 | 
			
		||||
	      ( lvl != L_GLOBAL && def->df_level > lvl )
 | 
			
		||||
	    ))
 | 
			
		||||
	   || (lvl == L_GLOBAL
 | 
			
		||||
	       && def && def->df_level == L_PROTO
 | 
			
		||||
	      ( lvl != L_GLOBAL && def->df_level > lvl ) ||
 | 
			
		||||
	      (lvl == L_GLOBAL
 | 
			
		||||
	       && def->df_level == L_PROTO
 | 
			
		||||
	       && def->next && def->next->df_level == L_GLOBAL)
 | 
			
		||||
	   )	{
 | 
			
		||||
	   ))	{
 | 
			
		||||
		/*	There is already a declaration for idf on this
 | 
			
		||||
			level, or even more inside.
 | 
			
		||||
			The rules differ for different levels.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue