diff mbox series

[fortran,committed] Fix PR 88363

Message ID aa4911a5-a5d2-d145-d52a-16e0652ec9e4@netcologne.de
State New
Headers show
Series [fortran,committed] Fix PR 88363 | expand

Commit Message

Thomas Koenig Dec. 16, 2018, 2:41 p.m. UTC
Hi,

I just committed the attached patch as obvious and simple. The problem
was that clobbering of intent(out) clobbered the whole variable, instead
of only the element that was actually clobbered.

There is still some optimization work that can be done here, but I will
defer that to a later date - see PR 41453.

Regards

	Thomas

2018-12-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PF fortran/88364
	* trans-expr.c (gfc_conv_expr_reference): Do not add clobber if
	the expression contains a reference.

2018-12-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/88364
	* intent_out_13.f90: New test.


Added:
     trunk/gcc/testsuite/gfortran.dg/intent_out_13.f90
Modified:
     trunk/gcc/fortran/ChangeLog
     trunk/gcc/fortran/trans-expr.c
     trunk/gcc/testsuite/ChangeLog
diff mbox series

Patch

Index: trans-expr.c
===================================================================
--- trans-expr.c	(Revision 267172)
+++ trans-expr.c	(Arbeitskopie)
@@ -8152,7 +8152,7 @@  gfc_conv_expr_reference (gfc_se * se, gfc_expr * e
 	  gfc_add_block_to_block (&se->pre, &se->post);
 	  se->expr = var;
 	}
-      else if (add_clobber)
+      else if (add_clobber && expr->ref == NULL)
 	{
 	  tree clobber;
 	  tree var;