aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2009-05-26 21:23:45 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2009-05-26 21:23:45 +0200
commit9a0bab0be682be2aaee5f1146518c4d94d44ac8e (patch)
tree21a6ec79e2177c353922e154676c03fc9d0b347f /gcc
parentae2392a94bb89e198642d304d2f04ca67142c006 (diff)
downloadgcc-9a0bab0be682be2aaee5f1146518c4d94d44ac8e.zip
gcc-9a0bab0be682be2aaee5f1146518c4d94d44ac8e.tar.gz
gcc-9a0bab0be682be2aaee5f1146518c4d94d44ac8e.tar.bz2
re PR fortran/40246 (ICE on invalid SOURCE= using NULLIFY)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/match.c5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/nullify_4.f908
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 7695b79..048d44e 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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).
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index ed7bf58..cf558b5 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -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;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6163fcf..f42781b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..48dcf72
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/nullify_4.f90
@@ -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