1! { dg-do run } 2! 3! PR fortran/38657, in which the mixture of PRIVATE and 4! COMMON in TEST4, would mess up the association with 5! TESTCHAR in TEST2. 6! 7! Contributed by Paul Thomas <pault@gcc.gnu.org> 8! From a report in clf by Chris Bradley. 9! 10MODULE TEST4 11 PRIVATE 12 CHARACTER(LEN=80) :: T1 = & 13 "Mary had a little lamb, Its fleece was white as snow;" 14 CHARACTER(LEN=80) :: T2 = & 15 "And everywhere that Mary went, The lamb was sure to go." 16 CHARACTER(LEN=80) :: TESTCHAR 17 COMMON /TESTCOMMON1/ TESTCHAR 18 PUBLIC T1, T2, FOOBAR 19CONTAINS 20 subroutine FOOBAR (CHECK) 21 CHARACTER(LEN=80) :: CHECK 22 IF (TESTCHAR .NE. CHECK) CALL ABORT 23 end subroutine 24END MODULE TEST4 25 26MODULE TEST3 27 CHARACTER(LEN=80) :: TESTCHAR 28 COMMON /TESTCOMMON1/ TESTCHAR 29END MODULE TEST3 30 31MODULE TEST2 32 use TEST4 33 USE TEST3, chr => testchar 34 PRIVATE 35 CHARACTER(LEN=80) :: TESTCHAR 36 COMMON /TESTCOMMON1/ TESTCHAR 37 PUBLIC TESTCHAR, FOO, BAR, CHR, T1, T2, FOOBAR 38contains 39 subroutine FOO 40 TESTCHAR = T1 41 end subroutine 42 subroutine BAR (CHECK) 43 CHARACTER(LEN=80) :: CHECK 44 IF (TESTCHAR .NE. CHECK) CALL ABORT 45 IF (CHR .NE. CHECK) CALL ABORT 46 end subroutine 47END MODULE TEST2 48 49PROGRAM TEST1 50 USE TEST2 51 call FOO 52 call BAR (T1) 53 TESTCHAR = T2 54 call BAR (T2) 55 CALL FOOBAR (T2) 56END PROGRAM TEST1 57