expr.c (gfc_check_assign): Don't allow NULL as rhs in a non-pointer assignment.
fortran/ * expr.c (gfc_check_assign): Don't allow NULL as rhs in a non-pointer assignment. testsuite/ * gfortran.dg/pr15754.f90: Change annotations to dg-error. From-SVN: r97740
This commit is contained in:
parent
e3eff25ac1
commit
ccccdb8d9b
@ -1,3 +1,8 @@
|
||||
2005-04-06 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
* expr.c (gfc_check_assign): Don't allow NULL as rhs in a
|
||||
non-pointer assignment.
|
||||
|
||||
2005-04-05 Feng Wang <fengwang@nudt.edu.cn>
|
||||
|
||||
PR fortran/15959
|
||||
|
@ -1789,11 +1789,12 @@ gfc_check_assign (gfc_expr * lvalue, gfc_expr * rvalue, int conform)
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
/* This is a guaranteed segfault and possibly a typo: p = NULL()
|
||||
instead of p => NULL() */
|
||||
if (rvalue->expr_type == EXPR_NULL)
|
||||
gfc_warning ("NULL appears on right-hand side in assignment at %L",
|
||||
&rvalue->where);
|
||||
if (rvalue->expr_type == EXPR_NULL)
|
||||
{
|
||||
gfc_error ("NULL appears on right-hand side in assignment at %L",
|
||||
&rvalue->where);
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
/* This is possibly a typo: x = f() instead of x => f() */
|
||||
if (gfc_option.warn_surprising
|
||||
|
@ -1,3 +1,7 @@
|
||||
2005-04-06 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
* gfortran.dg/pr15754.f90: Change annotations to dg-error.
|
||||
|
||||
2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
|
||||
|
||||
* gcc.dg/weak/weak-12.c, g++.dg/ext/weak2.C: New tests.
|
||||
|
@ -1,7 +1,7 @@
|
||||
! we didn't give a warning if the RHS of an assignment was NULL
|
||||
! { dg-do-compile }
|
||||
INTEGER, POINTER :: P
|
||||
I = NULL() ! { dg-warning "NULL appears" "Assignment non-pointer = NULL" }
|
||||
P = NULL() ! { dg-warning "NULL appears" "Assignment pointer = NULL" }
|
||||
I = NULL() ! { dg-error "NULL appears" "Assignment non-pointer = NULL" }
|
||||
P = NULL() ! { dg-error "NULL appears" "Assignment pointer = NULL" }
|
||||
P => NULL()
|
||||
END
|
||||
|
Loading…
Reference in New Issue
Block a user