[PATCH] remove duplicated lines in gcc/fortran/resolve.c

Dominique d'Humières dominiq@lps.ens.fr
Mon Sep 22 10:32:00 GMT 2014


Le 21 sept. 2014 à 10:44, FX <fxcoudert@gmail.com> a écrit :

>> AFAICT the lines 11200-11222 in gcc/fortran/resolve.c are a copy of
>> the lines 11176-11198.
> 
> The duplicates were introduced by revision 126468, an unrelated patch, after the original commit of the code as 126466. It looks like a svn/patch mishap.

Thanks for tracking the origin of the problem. After having tested a patch, I usually do not revert it before doing the svn update when it is committed. If a last minute change has been made between the patch and the commit, it results in general a conflict during the svn update. However I have seen a couple times the patched tree is simply merged with the update leading to a duplicated piece of code.

For the record, while the two blocks were identical from a functional pout of view, their formatting were slightly different:

< 				      "PUBLIC interface '%s' at %L takes "
< 				      "dummy arguments of '%s' which is "
< 				      "PRIVATE", iface->sym->name, 
---
> 				      "PUBLIC interface '%s' at %L "
> 				      "takes dummy arguments of '%s' which "
> 				      "is PRIVATE", iface->sym->name, 

> 
>> The following patch removes the duplicated
>> lines. OK for the trunk?
> 
> You didn’t say if it was regtested. OK if it was (one can never be too sure!)

The patch has been in my working tree for months. I have posted recent test results with the patch (and r211089 reverted to fix pr61387) at

https://gcc.gnu.org/ml/gcc-testresults/2014-09/msg02018.html

> 
> Thanks,
> FX

This is what I have committed as revision r215452

Index: gcc/fortran/ChangeLog
===================================================================
--- gcc/fortran/ChangeLog	(revision 215451)
+++ gcc/fortran/ChangeLog	(working copy)
@@ -1,3 +1,7 @@
+2014-09-21  Dominique d'Humieres <dominiq@lps.ens.fr>
+
+	* resolve.c (resolve_fl_procedure): Remove duplicated lines.
+
 2014-09-20  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
 	    Tobias Burnus  <burnus@net-b.de>
 
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c	(revision 215451)
+++ gcc/fortran/resolve.c	(working copy)
@@ -11196,30 +11196,6 @@
 		}
 	     }
 	}
-
-      /* PUBLIC interfaces may expose PRIVATE procedures that take types
-	 PRIVATE to the containing module.  */
-      for (iface = sym->generic; iface; iface = iface->next)
-	{
-	  for (arg = gfc_sym_get_dummy_args (iface->sym); arg; arg = arg->next)
-	    {
-	      if (arg->sym
-		  && arg->sym->ts.type == BT_DERIVED
-		  && !arg->sym->ts.u.derived->attr.use_assoc
-		  && !gfc_check_symbol_access (arg->sym->ts.u.derived)
-		  && !gfc_notify_std (GFC_STD_F2003, "Procedure '%s' in "
-				      "PUBLIC interface '%s' at %L takes "
-				      "dummy arguments of '%s' which is "
-				      "PRIVATE", iface->sym->name, 
-				      sym->name, &iface->sym->declared_at, 
-				      gfc_typename(&arg->sym->ts)))
-		{
-		  /* Stop this message from recurring.  */
-		  arg->sym->ts.u.derived->attr.access = ACCESS_PUBLIC;
-		  return false;
-		}
-	     }
-	}
     }
 
   if (sym->attr.function && sym->value && sym->attr.proc != PROC_ST_FUNCTION

Thanks for the review,

Dominique



More information about the Gcc-patches mailing list