diff mbox series

[fortran,committed] Fix regression caused by clobber for INTENT(OUT) patch

Message ID a7613ef9-1749-2c0b-3ffc-09260ba288b7@netcologne.de
State New
Headers show
Series [fortran,committed] Fix regression caused by clobber for INTENT(OUT) patch | expand

Commit Message

Thomas Koenig Sept. 23, 2018, 10:55 a.m. UTC
Hello world,

the attached patch, committed as obvious, fixes a regression
introduced by yesterday's patch.  Apparently, clobber statements
are even more finicky that I thought and do not work for saved
variables either.

Regards

	Thomas

2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87395
	* gfc_conv_procedure_call: Reformat comments slightly. Do not add
	clobber on INTENT(OUT) for saved variables.

2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87395
	* gfortran.dg/intent_out_10.f90: New test.
diff mbox series

Patch

Index: trans-expr.c
===================================================================
--- trans-expr.c	(Revision 264506)
+++ trans-expr.c	(Arbeitskopie)
@@ -5281,7 +5281,10 @@  gfc_conv_procedure_call (gfc_se * se, gfc_symbol *
 		      add_clobber = fsym && fsym->attr.intent == INTENT_OUT
 			&& !fsym->attr.allocatable && !fsym->attr.pointer
 			&& !e->symtree->n.sym->attr.pointer
-			&& !e->symtree->n.sym->attr.dummy  /* See PR 41453.  */
+			/* See PR 41453.  */
+			&& !e->symtree->n.sym->attr.dummy
+			/* FIXME - PR 87395 and PR 41453  */
+			&& e->symtree->n.sym->attr.save == SAVE_NONE 
 			&& e->ts.type != BT_CHARACTER && e->ts.type != BT_DERIVED
 			&& e->ts.type != BT_CLASS && !sym->attr.elemental;