mirror of git://gcc.gnu.org/git/gcc.git
PF fortran/88364
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/88363 * intent_out_13.f90: New test. From-SVN: r267187
This commit is contained in:
parent
57bfedaffe
commit
bd810d6370
|
|
@ -1,3 +1,9 @@
|
||||||
|
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-15 Steven G. Kargl <kargl@gcc.gnu.org>
|
2018-12-15 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/87944
|
PR fortran/87944
|
||||||
|
|
|
||||||
|
|
@ -8152,7 +8152,7 @@ gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr, bool add_clobber)
|
||||||
gfc_add_block_to_block (&se->pre, &se->post);
|
gfc_add_block_to_block (&se->pre, &se->post);
|
||||||
se->expr = var;
|
se->expr = var;
|
||||||
}
|
}
|
||||||
else if (add_clobber)
|
else if (add_clobber && expr->ref == NULL)
|
||||||
{
|
{
|
||||||
tree clobber;
|
tree clobber;
|
||||||
tree var;
|
tree var;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2018-12-16 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/88363
|
||||||
|
* intent_out_13.f90: New test.
|
||||||
|
|
||||||
2018-12-15 H.J. Lu <hongjiu.lu@intel.com>
|
2018-12-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR target/88483
|
PR target/88483
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
! { dg-do run }
|
||||||
|
! PR 88364 -- too much was clobbered on call.
|
||||||
|
module pr88364
|
||||||
|
implicit none
|
||||||
|
type t
|
||||||
|
integer :: b = -1
|
||||||
|
integer :: c = 2
|
||||||
|
end type t
|
||||||
|
contains
|
||||||
|
subroutine f1 (x)
|
||||||
|
integer, intent(out) :: x
|
||||||
|
x = 5
|
||||||
|
end subroutine f1
|
||||||
|
subroutine f2 ()
|
||||||
|
type(t) :: x
|
||||||
|
call f1 (x%b)
|
||||||
|
if (x%b .ne. 5 .or. x%c .ne. 2) stop 1
|
||||||
|
end subroutine f2
|
||||||
|
end module pr88364
|
||||||
|
use pr88364
|
||||||
|
call f2
|
||||||
|
end
|
||||||
Loading…
Reference in New Issue