OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gfortran.dg/] [abstract_type_5.f03] - Blame information for rev 424

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

Line No. Rev Author Line
1 302 jeremybenn
! { dg-do "compile" }
2
 
3
! Abstract Types.
4
! Check for correct handling of abstract-typed base object references.
5
 
6
MODULE m
7
  IMPLICIT NONE
8
 
9
  TYPE, ABSTRACT :: abstract_t
10
    INTEGER :: i
11
  CONTAINS
12
    PROCEDURE, NOPASS :: proc
13
    PROCEDURE, NOPASS :: func
14
  END TYPE abstract_t
15
 
16
  TYPE, EXTENDS(abstract_t) :: concrete_t
17
  END TYPE concrete_t
18
 
19
CONTAINS
20
 
21
  SUBROUTINE proc ()
22
    IMPLICIT NONE
23
    ! Do nothing
24
  END SUBROUTINE proc
25
 
26
  INTEGER FUNCTION func ()
27
    IMPLICIT NONE
28
    func = 1234
29
  END FUNCTION func
30
 
31
  SUBROUTINE test ()
32
    IMPLICIT NONE
33
    TYPE(concrete_t) :: obj
34
 
35
    ! These are ok.
36
    obj%abstract_t%i = 42
37
    CALL obj%proc ()
38
    PRINT *, obj%func ()
39
 
40
    ! These are errors (even though the procedures are not DEFERRED!).
41
    CALL obj%abstract_t%proc () ! { dg-error "is of ABSTRACT type" }
42
    PRINT *, obj%abstract_t%func () ! { dg-error "is of ABSTRACT type" }
43
  END SUBROUTINE test
44
 
45
END MODULE m
46
! { dg-final { cleanup-modules "m" } }

powered by: WebSVN 2.1.0

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