Commit c11384aa by Janus Weil

re PR fortran/81770 (Bogus warning: Pointer in pointer assignment might outlive the pointer target)

2017-08-28  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/81770
	* expr.c (gfc_check_pointer_assign): Improve the check whether pointer
	may outlive pointer target.


2017-08-28  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/81770
	* gfortran.dg/warn_target_lifetime_3.f90: Fix a typo.
	* gfortran.dg/warn_target_lifetime_4.f90: New testcase.

From-SVN: r251390
parent ac9a43e1
2017-08-28 Janus Weil <janus@gcc.gnu.org>
PR fortran/81770
* expr.c (gfc_check_pointer_assign): Improve the check whether pointer
may outlive pointer target.
2017-08-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/81974
......
......@@ -3806,7 +3806,8 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
if (warn_target_lifetime
&& rvalue->expr_type == EXPR_VARIABLE
&& !rvalue->symtree->n.sym->attr.save
&& !attr.pointer && !rvalue->symtree->n.sym->attr.host_assoc
&& !rvalue->symtree->n.sym->attr.pointer && !attr.pointer
&& !rvalue->symtree->n.sym->attr.host_assoc
&& !rvalue->symtree->n.sym->attr.in_common
&& !rvalue->symtree->n.sym->attr.use_assoc
&& !rvalue->symtree->n.sym->attr.dummy)
......
2017-08-28 Janus Weil <janus@gcc.gnu.org>
PR fortran/81770
* gfortran.dg/warn_target_lifetime_3.f90: Fix a typo.
* gfortran.dg/warn_target_lifetime_4.f90: New testcase.
2017-08-28 Steve Ellcey <sellcey@cavium.com>
* gfortran.dg/dec_init_1.f90 (dummy): Use ichar in print statement.
......
......@@ -3,7 +3,7 @@
!
! PR fortran/55476
!
! Contribued by Janus Weil
! Contributed by Janus Weil
!
subroutine test
integer, pointer :: p
......
! { dg-do compile }
! { dg-options "-Wtarget-lifetime" }
!
! PR fortran/81770: [5/6/7 Regression] Bogus warning: Pointer in pointer assignment might outlive the pointer target
!
! Contributed by Janus Weil <janus@gcc.gnu.org>
module m
type t
integer, allocatable :: l
end type
contains
subroutine sub(c_in, list)
type(t), target, intent(in) :: c_in
integer, pointer, intent(out) :: list
type(t), pointer :: container
container => c_in
list => container%l
end subroutine
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment