From: Paul Thomas Date: Tue, 22 Jan 2008 06:01:54 +0000 (+0000) Subject: re PR fortran/34896 (libgomp.fortran/reduction5.f90) X-Git-Tag: releases/gcc-4.3.0~491 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87a64f537b2da1b02a7ec0de254b60614db72074;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6446e95638f5..c6be6130a807 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 fe57b9d27fe2..c2dc27ae2194 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 8d8bc99cc761..b3095a15f765 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 000000000000..3ca6f698af58 --- /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" } }