From 87a64f537b2da1b02a7ec0de254b60614db72074 Mon Sep 17 00:00:00 2001 From: Paul Thomas Date: Tue, 22 Jan 2008 06:01:54 +0000 Subject: [PATCH] re PR fortran/34896 (libgomp.fortran/reduction5.f90) 2008-01-22 Paul Thomas PR fortran/34896 * module.c (read_module): Set use_rename attribute. 2008-01-22 Paul Thomas PR fortran/34896 * gfortran.dg/use_rename_2.f90: New test. From-SVN: r131712 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/module.c | 3 +++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/use_rename_2.f90 | 26 ++++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/use_rename_2.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6446e95638f..c6be6130a80 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2008-01-22 Paul Thomas + + PR fortran/34896 + * module.c (read_module): Set use_rename attribute. + 2007-01-21 Tobias Burnus PR fortran/34901 diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index fe57b9d27fe..c2dc27ae219 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -3769,6 +3769,9 @@ read_module (void) st->n.sym = sym; st->n.sym->refs++; + if (strcmp (name, p) != 0) + sym->attr.use_rename = 1; + /* Store the symtree pointing to this symbol. */ info->u.rsym.symtree = st; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8d8bc99cc76..b3095a15f76 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-01-22 Paul Thomas + + PR fortran/34896 + * gfortran.dg/use_rename_2.f90: New test. + 2008-01-21 Richard Guenther PR middle-end/34856 diff --git a/gcc/testsuite/gfortran.dg/use_rename_2.f90 b/gcc/testsuite/gfortran.dg/use_rename_2.f90 new file mode 100644 index 00000000000..3ca6f698af5 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/use_rename_2.f90 @@ -0,0 +1,26 @@ +! { dg-do run } +! { dg-options "-O1" } +! Checks the fix for PR34896 which was a regression that prevented max +! and min from being interchanged by the USE statement below. It is further +! checked by libgomp/testsuite/libgomp.fortran/reduction5.f90 +! +! Reported by H.J. Lu +! +module reduction5 + intrinsic min, max +end module reduction5 + +program reduction_5_regression + call test2 +contains + subroutine test2 + use reduction5, min => max, max => min + integer a, b + a = max (1,5) + b = min (1,5) + if (a .ne. 1) call abort () + if (b .ne. 5) call abort () + end subroutine test2 +end + +! { dg-final { cleanup-modules "reduction5" } } -- 2.30.2