29 lines
819 B
Fortran
29 lines
819 B
Fortran
! { dg-do compile }
|
|
! This checks the fix for PR20889 in wrong pointer types in derived
|
|
! type constructors would either give no message or would segfault.
|
|
!
|
|
! Contributed by Joost VandVondele <jv244@cam.ac.uk>
|
|
!==============
|
|
TYPE TEST
|
|
REAL, POINTER :: A
|
|
END TYPE
|
|
|
|
TYPE TEST1
|
|
REAL :: A
|
|
END TYPE
|
|
|
|
INTEGER, POINTER :: IP
|
|
real, POINTER :: RP
|
|
TYPE(TEST) :: DD
|
|
TYPE(TEST1) :: EE
|
|
! Next line is the original => gave no warning/error.
|
|
DD=TEST(NULL(IP)) ! { dg-error "INTEGER but should be REAL" }
|
|
! Would segfault here.
|
|
DD=TEST(IP) ! { dg-error "INTEGER but should be REAL" }
|
|
! Check right target type is OK.
|
|
DD=TEST(NULL(RP))
|
|
! Check non-pointer is OK.
|
|
EE= TEST1(1)
|
|
! Test attempted conversion from character to real.
|
|
EE= TEST1("e") ! { dg-error "convert CHARACTER" }
|
|
END |