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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [function_kinds_4.f90] - Blame information for rev 694

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 694 jeremybenn
! { dg-do run }
2
! Tests the fix for PR34471 in which function KINDs that were
3
! USE associated would cause an error.
4
!
5
! This only needs to be run once.
6
! { dg-options "-O2" }
7
!
8
! Contributed by Tobias Burnus 
9
!
10
module m1
11
  integer, parameter :: i1 = 1, i2 = 2
12
end module m1
13
 
14
module m2
15
  integer, parameter :: i1 = 8
16
end module m2
17
 
18
integer(i1) function three()
19
  use m1, only: i2
20
  use m2                ! This provides the function kind
21
  three = i1
22
  if(three /= kind(three)) call abort()
23
end function three
24
 
25
! At one stage during the development of the patch, this started failing
26
! but was not tested in gfortran.dg.  */
27
real (kind(0d0)) function foo ()
28
  foo = real (kind (foo))
29
end function
30
 
31
program main
32
implicit none
33
 interface
34
    integer(8) function three()
35
    end function three
36
 end interface
37
 integer, parameter :: i1 = 4
38
 integer :: i
39
 real (kind(0d0)) foo
40
 i = one()
41
 i = two()
42
 if(three() /= 8) call abort()
43
 if (int(foo()) /= 8) call abort ()
44
contains
45
 integer(i1) function one()  ! Host associated kind
46
   if (kind(one) /= 4) call abort()
47
   one = 1
48
 end function one
49
 integer(i1) function two()  ! Use associated kind
50
   use m1, only: i2
51
   use m2
52
   if (kind(two) /= 8) call abort()
53
   two = 1
54
 end function two
55
end program main
56
! { dg-final { cleanup-modules "m1 m2" } }

powered by: WebSVN 2.1.0

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