blob: 58790ebfb589f74b4005c1e3c8e567f37d9833ba [file] [log] [blame]
! { dg-do compile }
program a
implicit none
real x
integer j, k, n(4)
character(len=70) err
character(len=70), allocatable :: error(:)
integer, allocatable :: i(:)
type b
integer, allocatable :: c(:), d(:)
end type b
type(b) e, f(3)
deallocate(i, stat=x) ! { dg-error "must be a scalar INTEGER" }
deallocate(i, stat=j, stat=k) ! { dg-error "Redundant STAT" }
deallocate(i)
deallocate(i)) ! { dg-error "Syntax error in DEALLOCATE" }
deallocate(i, errmsg=err, errmsg=err) ! { dg-error "Redundant ERRMSG" }
deallocate(i, errmsg=err) ! { dg-warning "useless without a STAT" }
deallocate(i, stat=j, errmsg=x) ! { dg-error "shall be a scalar default CHARACTER" }
deallocate(err) ! { dg-error "nonprocedure pointer nor an allocatable" }
deallocate(error,stat=j,errmsg=error(1)) ! { dg-error "shall not be DEALLOCATEd within" }
deallocate(i, stat = i(1)) ! { dg-error "shall not be DEALLOCATEd within" }
deallocate(n) ! { dg-error "must be ALLOCATABLE or a POINTER" }
deallocate(i, i) ! { dg-error "Allocate-object at" }
! These should not fail the check for duplicate alloc-objects.
deallocate(f(1)%c, f(2)%d)
deallocate(e%c, e%d)
end program a