Commit 1216b4d2 by Mikael Morin

re PR fortran/56477 (ICE on invalid with pointer assignment to function result)

fortran/
	PR fortran/56477
	* expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.

testsuite/
	PR fortran/56477
	* gfortran.dg/pointer_check_13.f90: New test.

From-SVN: r196417
parent d6a5de16
2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/56477
* expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/54730
* array.c (gfc_match_array_constructor): Set a checkpoint before
matching a typespec. Drop it on success, restore it otherwise.
......
......@@ -3732,7 +3732,7 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
&& rvalue->symtree->n.sym->ns->proc_name->attr.flavor != FL_PROCEDURE
&& rvalue->symtree->n.sym->ns->proc_name->attr.flavor != FL_PROGRAM)
for (ns = rvalue->symtree->n.sym->ns;
ns->proc_name && ns->proc_name->attr.flavor != FL_PROCEDURE;
ns && ns->proc_name && ns->proc_name->attr.flavor != FL_PROCEDURE;
ns = ns->parent)
if (ns->parent == lvalue->symtree->n.sym->ns)
warn = true;
......
2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/56477
* gfortran.dg/pointer_check_13.f90: New test.
2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/54730
* gfortran.dg/array_constructor_42.f90: New test.
......
! { dg-do compile }
! { dg-options "-Wall -Wno-uninitialized" }
!
! PR fortran/56477
! The pointer target live range checking code used to trigger a NULL pointer
! dereference with the following case.
!
! Contributed by Andrew Benson <abensonca@gmail.com>
!
module s
contains
function so()
implicit none
integer, target :: so
integer, pointer :: sp
sp => so
return
end function So
end module s
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