29 lines
		
	
	
		
			870 B
		
	
	
	
		
			Fortran
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			870 B
		
	
	
	
		
			Fortran
		
	
	
	
| ! RUN: not %f18 -Mstandard %s 2>&1 | FileCheck %s
 | |
| ! Test extension: allow forward references to dummy arguments
 | |
| ! from specification expressions in scopes with IMPLICIT NONE(TYPE),
 | |
| ! as long as those symbols are eventually typed later with the
 | |
| ! same integer type they would have had without IMPLICIT NONE.
 | |
| 
 | |
| !CHECK: Dummy argument 'n1' was used without being explicitly typed
 | |
| !CHECK: error: No explicit type declared for dummy argument 'n1'
 | |
| subroutine foo1(a, n1)
 | |
|   implicit none
 | |
|   real a(n1)
 | |
| end
 | |
| 
 | |
| !CHECK: Dummy argument 'n2' was used without being explicitly typed
 | |
| subroutine foo2(a, n2)
 | |
|   implicit none
 | |
|   real a(n2)
 | |
| !CHECK: error: The type of 'n2' has already been implicitly declared
 | |
|   double precision n2
 | |
| end
 | |
| 
 | |
| !CHECK: Dummy argument 'n3' was used without being explicitly typed
 | |
| !CHECK-NOT: error:
 | |
| subroutine foo3(a, n3)
 | |
|   implicit none
 | |
|   real a(n3)
 | |
|   integer n3
 | |
| end
 |