aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2008-01-22 06:01:54 +0000
committerPaul Thomas <pault@gcc.gnu.org>2008-01-22 06:01:54 +0000
commit87a64f537b2da1b02a7ec0de254b60614db72074 (patch)
tree095c8b10c9b4fca54ba9aa5dbe4217f40eaac509 /gcc
parent1d4f537493ecfd41dcdaef735eee2bedce6a85f6 (diff)
downloadgcc-87a64f537b2da1b02a7ec0de254b60614db72074.zip
gcc-87a64f537b2da1b02a7ec0de254b60614db72074.tar.gz
gcc-87a64f537b2da1b02a7ec0de254b60614db72074.tar.bz2
re PR fortran/34896 (libgomp.fortran/reduction5.f90)
2008-01-22 Paul Thomas <pault@gcc.gnu.org> PR fortran/34896 * module.c (read_module): Set use_rename attribute. 2008-01-22 Paul Thomas <pault@gcc.gnu.org> PR fortran/34896 * gfortran.dg/use_rename_2.f90: New test. From-SVN: r131712
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/module.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/use_rename_2.f9026
4 files changed, 39 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 6446e95..c6be6130a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34896
+ * module.c (read_module): Set use_rename attribute.
+
2007-01-21 Tobias Burnus <burnus@net-b.de>
PR fortran/34901
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index fe57b9d..c2dc27a 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 8d8bc99..b3095a1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-22 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/34896
+ * gfortran.dg/use_rename_2.f90: New test.
+
2008-01-21 Richard Guenther <rguenther@suse.de>
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 0000000..3ca6f69
--- /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 <hjl.tools@gmail.com>
+!
+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" } }