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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [gfortran.dg/] [nested_modules_3.f90] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
! { dg-do run }
! { dg-do run }
!
!
! This tests the improved version of the patch for PR16861.  Testing
! This tests the improved version of the patch for PR16861.  Testing
! after committing the first version, revealed that this test did
! after committing the first version, revealed that this test did
! not work but was not regtested for, either.
! not work but was not regtested for, either.
!
!
! Contributed by Paul Thomas 
! Contributed by Paul Thomas 
!
!
MODULE foo
MODULE foo
  TYPE type1
  TYPE type1
    INTEGER i1
    INTEGER i1
  END TYPE type1
  END TYPE type1
END MODULE
END MODULE
MODULE bar
MODULE bar
CONTAINS
CONTAINS
  SUBROUTINE sub1 (x, y)
  SUBROUTINE sub1 (x, y)
    USE foo
    USE foo
    TYPE (type1)  :: x
    TYPE (type1)  :: x
    INTEGER  :: y(x%i1)
    INTEGER  :: y(x%i1)
    y = 1
    y = 1
  END SUBROUTINE SUB1
  END SUBROUTINE SUB1
  SUBROUTINE sub2 (u, v)
  SUBROUTINE sub2 (u, v)
    USE foo
    USE foo
    TYPE (type1)  :: u
    TYPE (type1)  :: u
    INTEGER  :: v(u%i1)
    INTEGER  :: v(u%i1)
    v = 2
    v = 2
  END SUBROUTINE SUB2
  END SUBROUTINE SUB2
END MODULE
END MODULE
MODULE foobar
MODULE foobar
  USE foo
  USE foo
  USE bar
  USE bar
CONTAINS
CONTAINS
  SUBROUTINE sub3 (s, t)
  SUBROUTINE sub3 (s, t)
    USE foo
    USE foo
    TYPE (type1)  :: s
    TYPE (type1)  :: s
    INTEGER  :: t(s%i1)
    INTEGER  :: t(s%i1)
    t = 3
    t = 3
  END SUBROUTINE SUB3
  END SUBROUTINE SUB3
END MODULE foobar
END MODULE foobar
PROGRAM use_foobar
PROGRAM use_foobar
  USE foo
  USE foo
  USE foobar
  USE foobar
  INTEGER :: j(3) = 0
  INTEGER :: j(3) = 0
  TYPE (type1)   :: z
  TYPE (type1)   :: z
  z%i1 = 3
  z%i1 = 3
  CALL sub1 (z, j)
  CALL sub1 (z, j)
  z%i1 = 2
  z%i1 = 2
  CALL sub2 (z, j)
  CALL sub2 (z, j)
  z%i1 = 1
  z%i1 = 1
  CALL sub3 (z, j)
  CALL sub3 (z, j)
  IF (ALL (j.ne.(/3,2,1/))) CALL abort ()
  IF (ALL (j.ne.(/3,2,1/))) CALL abort ()
END PROGRAM use_foobar
END PROGRAM use_foobar
! { dg-final { cleanup-modules "foo bar foobar" } }
! { dg-final { cleanup-modules "foo bar foobar" } }
 
 

powered by: WebSVN 2.1.0

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