aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/used_dummy_types_6.f90
blob: 5b1c79765ea74f2c0b179f997f4a362e09d5a587 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
! { dg-do compile }
! Tests the fix for PR30554, the USE statements in potential_energy
! would cause a segfault because the pointer_info for nfree coming
! from constraint would not find the existing symtree coming directly
! from atom.
!
! The last two modules came up subsequently to the original fix.  The
! PRIVATE statement caused a revival of the original problem.  This
! was tracked down to an interaction between the symbols being set
! referenced during module read and the application of the access
! attribute.
!
! Contributed by Tobias Burnus <burnus@gcc.gnu.org>

MODULE ATOMS
INTEGER :: NFREE = 0
END MODULE ATOMS

MODULE CONSTRAINT
USE ATOMS, ONLY: NFREE
CONTAINS
   SUBROUTINE ENERGY_CONSTRAINT ( HESSIAN )
   REAL , DIMENSION(1:(3*NFREE*(3*NFREE+1))/2):: HESSIAN
   END SUBROUTINE ENERGY_CONSTRAINT
END MODULE CONSTRAINT

MODULE POTENTIAL_ENERGY
USE ATOMS
USE CONSTRAINT,         ONLY : ENERGY_CONSTRAINT
END MODULE POTENTIAL_ENERGY

MODULE P_CONSTRAINT
USE ATOMS, ONLY: NFREE
PRIVATE
PUBLIC :: ENERGY_CONSTRAINT
CONTAINS
   SUBROUTINE ENERGY_CONSTRAINT ( HESSIAN )
   REAL , DIMENSION(1:(3*NFREE*(3*NFREE+1))/2):: HESSIAN
   END SUBROUTINE ENERGY_CONSTRAINT
END MODULE P_CONSTRAINT

MODULE P_POTENTIAL_ENERGY
USE ATOMS
USE CONSTRAINT,         ONLY : ENERGY_CONSTRAINT
END MODULE P_POTENTIAL_ENERGY