[patch, fortran] PR32360 'DATA PTR1 /NULL ()/' WHEN PTR1 HAS POINTER ATTRIBUTE

Jerry DeLisle jvdelisle@verizon.net
Tue Jun 19 04:34:00 GMT 2007


Ping

Jerry DeLisle wrote:
> :ADDPATCH fortran:
> 
> The attached patch allows the test case in the PR to compile.  However, 
> it conflicts with the testcase pr15754.f90.  Do we want to allow this 
> assignment as an extension or should I further refine the checking?  Or 
> is it valid to allow the assignment to NULL as in the PR?
> 
>      integer, pointer :: ptr1
>      data ptr1 /NULL()/
>      end
> 
> Regression tested on x86-64-Gnu-Linux.
> 
> OK for trunk?  Fixing test case appropriately.
> 
> Jerry
> 
> 2007-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
> 
>     PR fortran/32360
>     * expr.c (gfc_check_assign): If the rvalue expression type is 
> NULL_EXPR,
>     check to see if the lvalue is a pointer.  If it is a pointer, set its
>     type to match the rvalue and do not issue an error.
> 
> 
> ------------------------------------------------------------------------
> 
> Index: expr.c
> ===================================================================
> *** expr.c	(revision 125747)
> --- expr.c	(working copy)
> *************** gfc_check_assign (gfc_expr *lvalue, gfc_
> *** 2407,2418 ****
>         return FAILURE;
>       }
>   
> !    if (rvalue->expr_type == EXPR_NULL)
> !      {
> !        gfc_error ("NULL appears on right-hand side in assignment at %L",
> ! 		  &rvalue->where);
> !        return FAILURE;
> !      }
>   
>      if (sym->attr.cray_pointee
>          && lvalue->ref != NULL
> --- 2407,2423 ----
>         return FAILURE;
>       }
>   
> !   if (rvalue->expr_type == EXPR_NULL)
> !     {  
> !       if (lvalue->symtree->n.sym->attr.pointer)
> !         rvalue->ts.type = lvalue->ts.type;
> !       else
> ! 	{
> ! 	  gfc_error ("NULL appears on right-hand side in assignment at %L",
> ! 		     &rvalue->where);
> ! 	  return FAILURE;
> ! 	}
> !     }
>   
>      if (sym->attr.cray_pointee
>          && lvalue->ref != NULL



More information about the Fortran mailing list