modula2: Simplify REAL/LONGREAL/SHORTREAL node creation.
[official-gcc.git] / gcc / testsuite / gfortran.dg / typebound_proc_2.f90
blob14f01effd0ee13d52c94fdec7560e0e0af6a707b
1 ! { dg-do compile }
2 ! { dg-options "-std=f95" }
4 ! Type-bound procedures
5 ! Test that F95 does not allow type-bound procedures
7 MODULE testmod
8 IMPLICIT NONE
10 TYPE t
11 INTEGER :: x
12 CONTAINS ! { dg-error "Fortran 2003: CONTAINS block in derived type definition" }
13 PROCEDURE proc1 ! { dg-error "Fortran 2003: PROCEDURE statement" }
14 PROCEDURE :: proc2 => p2 ! { dg-error "Fortran 2003: PROCEDURE statement" }
15 END TYPE t ! { dg-error "Fortran 2008: Derived type definition at .1. with empty CONTAINS section" }
17 CONTAINS
19 SUBROUTINE proc1 (me) ! { dg-error "no IMPLICIT type" }
20 IMPLICIT NONE
21 TYPE(t1) :: me ! { dg-error "being used before it is defined" }
22 END SUBROUTINE proc1
24 REAL FUNCTION proc2 (me, x) ! { dg-error "no IMPLICIT type" }
25 IMPLICIT NONE
26 TYPE(t1) :: me ! { dg-error "being used before it is defined" }
27 REAL :: x
28 proc2 = x / 2
29 END FUNCTION proc2
31 END MODULE testmod