OSDN Git Service

fortran/
authortobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Apr 2005 18:03:09 +0000 (18:03 +0000)
committertobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 6 Apr 2005 18:03:09 +0000 (18:03 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97740 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr15754.f90

index fed9ec3..990eb18 100644 (file)
@@ -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
index f4a4b58..d0c99e3 100644 (file)
@@ -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 
index 962e7e0..dc98fcd 100644 (file)
@@ -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.
index 6d8e34f..f595d6e 100644 (file)
@@ -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