OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [finalize_7.f03] - Rev 707

Go to most recent revision | Compare with Previous | Blame | View Log

! { dg-do compile }
! { dg-options "-Wsurprising" }

! Implementation of finalizer procedures.
! Check for expected warnings on dubious FINAL constructs.

MODULE final_type
  IMPLICIT NONE

  TYPE :: type_1
    INTEGER, ALLOCATABLE :: fooarr(:)
    REAL :: foobar
  CONTAINS
    ! Non-scalar procedures should be assumed shape
    FINAL :: fin1_scalar
    FINAL :: fin1_shape_1
    FINAL :: fin1_shape_2
  END TYPE type_1

  TYPE :: type_2 ! { dg-warning "Only array FINAL procedures" }
    REAL :: x
  CONTAINS
    ! No scalar finalizer, only array ones
    FINAL :: fin2_vector
  END TYPE type_2

CONTAINS

  SUBROUTINE fin1_scalar (el)
    IMPLICIT NONE
    TYPE(type_1) :: el
  END SUBROUTINE fin1_scalar

  SUBROUTINE fin1_shape_1 (v) ! { dg-warning "assumed shape" }
    IMPLICIT NONE
    TYPE(type_1) :: v(*)
  END SUBROUTINE fin1_shape_1

  SUBROUTINE fin1_shape_2 (v) ! { dg-warning "assumed shape" }
    IMPLICIT NONE
    TYPE(type_1) :: v(42, 5)
  END SUBROUTINE fin1_shape_2

  SUBROUTINE fin2_vector (v)
    IMPLICIT NONE
    TYPE(type_2) :: v(:)
  END SUBROUTINE fin2_vector

END MODULE final_type

PROGRAM finalizer
  IMPLICIT NONE
  ! Nothing here
END PROGRAM finalizer

! TODO: Remove this once finalization is implemented.
! { dg-excess-errors "not yet implemented" }

! { dg-final { cleanup-modules "final_type" } }

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.