]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/34896 (libgomp.fortran/reduction5.f90)
authorPaul Thomas <pault@gcc.gnu.org>
Tue, 22 Jan 2008 06:01:54 +0000 (06:01 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Tue, 22 Jan 2008 06:01:54 +0000 (06:01 +0000)
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

gcc/fortran/ChangeLog
gcc/fortran/module.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/use_rename_2.f90 [new file with mode: 0644]

index 6446e95638f5f6b926ce955aeebf61f834f52611..c6be6130a80753c1f2fd907564d4229365c6c707 100644 (file)
@@ -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
index fe57b9d27fe2b3eeb45cb083f15b6b440315a7b5..c2dc27ae2194d4d390bee0d55ed56da7e438ea5e 100644 (file)
@@ -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;
 
index 8d8bc99cc761c953709e89cd0e404c4d2821d8bc..b3095a15f765419c4c8ab4d34c8b167f3bfe3bb3 100644 (file)
@@ -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 (file)
index 0000000..3ca6f69
--- /dev/null
@@ -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" } }