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

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gfortran.dg/] [typebound_generic_2.f03] - Blame information for rev 384

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 302 jeremybenn
! { dg-do compile }
2
 
3
! Type-bound procedures
4
! Check for errors with calls to GENERIC bindings and their module IO.
5
! Calls with NOPASS.
6
 
7
MODULE m
8
  IMPLICIT NONE
9
 
10
  TYPE supert
11
  CONTAINS
12
    PROCEDURE, NOPASS :: func_int
13
    PROCEDURE, NOPASS :: sub_int
14
    GENERIC :: func => func_int
15
    GENERIC :: sub => sub_int
16
  END TYPE supert
17
 
18
  TYPE, EXTENDS(supert) :: t
19
  CONTAINS
20
    PROCEDURE, NOPASS :: func_real
21
    GENERIC :: func => func_real
22
  END TYPE t
23
 
24
CONTAINS
25
 
26
  INTEGER FUNCTION func_int (x)
27
    IMPLICIT NONE
28
    INTEGER :: x
29
    func_int = x
30
  END FUNCTION func_int
31
 
32
  INTEGER FUNCTION func_real (x)
33
    IMPLICIT NONE
34
    REAL :: x
35
    func_real = INT(x * 4.2)
36
  END FUNCTION func_real
37
 
38
  SUBROUTINE sub_int (x)
39
    IMPLICIT NONE
40
    INTEGER :: x
41
  END SUBROUTINE sub_int
42
 
43
END MODULE m
44
 
45
PROGRAM main
46
  USE m
47
  IMPLICIT NONE
48
 
49
  TYPE(t) :: myobj
50
 
51
  ! These are ok.
52
  CALL myobj%sub (1)
53
  WRITE (*,*) myobj%func (1)
54
  WRITE (*,*) myobj%func (2.5)
55
 
56
  ! These are not.
57
  CALL myobj%sub (2.5) ! { dg-error "no matching specific binding" }
58
  WRITE (*,*) myobj%func ("hello") ! { dg-error "no matching specific binding" }
59
  CALL myobj%func (2.5) ! { dg-error "SUBROUTINE" }
60
  WRITE (*,*) myobj%sub (1) ! { dg-error "FUNCTION" }
61
 
62
END PROGRAM main
63
 
64
! { 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.