summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/data_pointer_1.f90
blob: 8f081474ca498f9b4b4fb0a7e403500373c53b69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
! { dg-do compile }
! Test the fixes for PR38917 and 38918, in which the NULL values caused errors.
!
! Contributed by Dick Hendrickson  <dick.hendrickson@gmail.com>
!             and Tobias Burnus  <burnus@gcc.gnu.org>
!
      SUBROUTINE PF0009
!  PR38918
      TYPE  :: HAS_POINTER
        INTEGER, POINTER            :: PTR_S
      END TYPE HAS_POINTER
      TYPE (HAS_POINTER)  ::  PTR_ARRAY(5)

      DATA PTR_ARRAY(1)%PTR_S  /NULL()/

      end subroutine pf0009

      SUBROUTINE PF0005
! PR38917
      REAL, SAVE, POINTER :: PTR1
      INTEGER, POINTER       :: PTR2(:,:,:)
      CHARACTER(LEN=1), SAVE, POINTER :: PTR3(:)

      DATA  PTR1 / NULL() /
      DATA  PTR2 / NULL() /
      DATA  PTR3 / NULL() /

      end subroutine pf0005

! Tobias pointed out that this would cause an ICE rather than an error.
      subroutine tobias
      integer, pointer :: ptr(:)
      data ptr(1) /NULL()/  ! { dg-error "must be a full array" }
      end subroutine tobias