diff mbox series

[committed] PR 90744

Message ID 2ef6a3ab-bb6c-59a3-74cc-8322bd1f342f@netcologne.de
State New
Headers show
Series [committed] PR 90744 | expand

Commit Message

Thomas Koenig June 8, 2019, 1:54 p.m. UTC
Hello world,

I have just committed the attached patch to trunk as obvious an simple.
The problem, which led to wrong code, was that copying the "deferred"
attribute from the dummy to the formal argument a) makes no sense b)
led to wrong code. The analysis and the first working version of the
patch was done by Tomáš Trnka (thanks!).

I will also backport, since this is a 7/8/9/10 regression.

Regards

	Thomas

2019-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
	Tomáš Trnka  <trnka@scm.com>

	PR fortran/90744
	* trans-types.c (get_formal_from_actual_arglist): Unset typespec
	flags which make no sense for procedures without explicit
	interface.

2019-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
	Tomáš Trnka  <trnka@scm.com>

	PR fortran/90744
	* gfortran.dg/deferred_character_33.f90: New test.
	* gfortran.dg/deferred_character_33a.f90: New test.
diff mbox series

Patch

Index: trans-types.c
===================================================================
--- trans-types.c	(Revision 271945)
+++ trans-types.c	(Arbeitskopie)
@@ -3005,6 +3005,9 @@  get_formal_from_actual_arglist (gfc_symbol *sym, g
 	  else
 	    {
 	      s->ts = a->expr->ts;
+	      s->ts.deferred = 0;
+	      s->ts.is_iso_c = 0;
+	      s->ts.is_c_interop = 0;
 	      s->attr.flavor = FL_VARIABLE;
 	      if (a->expr->rank > 0)
 		{