]> gcc.gnu.org Git - gcc.git/commitdiff
re PR fortran/40246 (ICE on invalid SOURCE= using NULLIFY)
authorTobias Burnus <burnus@net-b.de>
Tue, 26 May 2009 19:23:45 +0000 (21:23 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Tue, 26 May 2009 19:23:45 +0000 (21:23 +0200)
2009-05-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40246
        * match.c (gfc_match_nullify): NULLify freed pointer.

2009-05-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40246
        * gfortran.dg/nullify_4.f90: New test.

From-SVN: r147879

gcc/fortran/ChangeLog
gcc/fortran/match.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/nullify_4.f90 [new file with mode: 0644]

index 7695b79501d7f29f764ce662f66d5ba07fc20def..048d44e191a91c237c47a075cff8922503f0067f 100644 (file)
@@ -1,3 +1,8 @@
+2009-05-26  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40246
+       * match.c (gfc_match_nullify): NULLify freed pointer.
+
 2009-05-26  Ian Lance Taylor  <iant@google.com>
 
        * Make-lang.in (gfortranspec.o): Use $(COMPILER).
index ed7bf58bb8618efa58551dd893370c1fd88cea1a..cf558b54e1b932ba3ddfe64d2a4c0a406d4d0d84 100644 (file)
@@ -2418,6 +2418,11 @@ syntax:
 
 cleanup:
   gfc_free_statements (new_st.next);
+  new_st.next = NULL;
+  gfc_free_expr (new_st.expr1);
+  new_st.expr1 = NULL;
+  gfc_free_expr (new_st.expr2);
+  new_st.expr2 = NULL;
   return MATCH_ERROR;
 }
 
index 6163fcf04fa15efac33afd1128c74628dfa80d98..f42781b6ddfebb85ef610659e2599b6776f93463 100644 (file)
@@ -1,3 +1,8 @@
+2009-05-26  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40246
+       * gfortran.dg/nullify_4.f90: New test.
+
 2009-05-26  Richard Guenther  <rguenther@suse.de>
 
        * gcc.dg/tree-ssa/inline-3.c: Remove dump file.
diff --git a/gcc/testsuite/gfortran.dg/nullify_4.f90 b/gcc/testsuite/gfortran.dg/nullify_4.f90
new file mode 100644 (file)
index 0000000..48dcf72
--- /dev/null
@@ -0,0 +1,8 @@
+! { dg-do compile }
+! PR fortran/40246
+!
+! Check error recovery; was crashing before.
+!
+real, pointer :: ptr
+nullify(ptr, mesh%coarser) ! { dg-error "Syntax error in NULLIFY statement" }
+end
This page took 0.096861 seconds and 5 git commands to generate.