! { dg-do compile }
|
! { dg-do compile }
|
! Test the fixes for PR38917 and 38918, in which the NULL values caused errors.
|
! Test the fixes for PR38917 and 38918, in which the NULL values caused errors.
|
!
|
!
|
! Contributed by Dick Hendrickson
|
! Contributed by Dick Hendrickson
|
! and Tobias Burnus
|
! and Tobias Burnus
|
!
|
!
|
SUBROUTINE PF0009
|
SUBROUTINE PF0009
|
! PR38918
|
! PR38918
|
TYPE :: HAS_POINTER
|
TYPE :: HAS_POINTER
|
INTEGER, POINTER :: PTR_S
|
INTEGER, POINTER :: PTR_S
|
END TYPE HAS_POINTER
|
END TYPE HAS_POINTER
|
TYPE (HAS_POINTER) :: PTR_ARRAY(5)
|
TYPE (HAS_POINTER) :: PTR_ARRAY(5)
|
|
|
DATA PTR_ARRAY(1)%PTR_S /NULL()/
|
DATA PTR_ARRAY(1)%PTR_S /NULL()/
|
|
|
end subroutine pf0009
|
end subroutine pf0009
|
|
|
SUBROUTINE PF0005
|
SUBROUTINE PF0005
|
! PR38917
|
! PR38917
|
REAL, SAVE, POINTER :: PTR1
|
REAL, SAVE, POINTER :: PTR1
|
INTEGER, POINTER :: PTR2(:,:,:)
|
INTEGER, POINTER :: PTR2(:,:,:)
|
CHARACTER(LEN=1), SAVE, POINTER :: PTR3(:)
|
CHARACTER(LEN=1), SAVE, POINTER :: PTR3(:)
|
|
|
DATA PTR1 / NULL() /
|
DATA PTR1 / NULL() /
|
DATA PTR2 / NULL() /
|
DATA PTR2 / NULL() /
|
DATA PTR3 / NULL() /
|
DATA PTR3 / NULL() /
|
|
|
end subroutine pf0005
|
end subroutine pf0005
|
|
|
! Tobias pointed out that this would cause an ICE rather than an error.
|
! Tobias pointed out that this would cause an ICE rather than an error.
|
subroutine tobias
|
subroutine tobias
|
integer, pointer :: ptr(:)
|
integer, pointer :: ptr(:)
|
data ptr(1) /NULL()/ ! { dg-error "must be a full array" }
|
data ptr(1) /NULL()/ ! { dg-error "must be a full array" }
|
end subroutine tobias
|
end subroutine tobias
|
|
|
|
|