diff options
author | Tobias Burnus <burnus@net-b.de> | 2009-05-26 21:23:45 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2009-05-26 21:23:45 +0200 |
commit | 9a0bab0be682be2aaee5f1146518c4d94d44ac8e (patch) | |
tree | 21a6ec79e2177c353922e154676c03fc9d0b347f /gcc | |
parent | ae2392a94bb89e198642d304d2f04ca67142c006 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/match.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/nullify_4.f90 | 8 |
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 |