From 15319c3ed9c09f632012dee8f2719059b1e3fff2 Mon Sep 17 00:00:00 2001 From: Mikael Morin Date: Sun, 16 Sep 2012 11:26:52 +0000 Subject: [PATCH] symbol.c (gfc_undo_symbols): Correctly undo namelists. fortran/ * symbol.c (gfc_undo_symbols): Correctly undo namelists. testsuite/ * gfortran.dg/namelist_75.f90: New test. From-SVN: r191357 --- gcc/fortran/ChangeLog | 4 ++++ gcc/fortran/symbol.c | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gfortran.dg/namelist_75.f90 | 10 ++++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/namelist_75.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6259229a25e0..f363d59a7503 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,7 @@ +2012-09-16 Mikael Morin + + * symbol.c (gfc_undo_symbols): Correctly undo namelists. + 2012-09-15 Tobias Burnus * trans-io.c (gfc_trans_transfer): Add an assert. diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index d68208d3010e..c914e65cac20 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -2996,7 +2996,7 @@ gfc_undo_symbols (void) { if (p->namelist_tail != old->namelist_tail) { - gfc_free_namelist (old->namelist_tail); + gfc_free_namelist (old->namelist_tail->next); old->namelist_tail->next = NULL; } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6ae64584dc41..b6f1990beb88 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2012-09-16 Mikael Morin + + * gfortran.dg/namelist_75.f90: New test. + 2012-09-15 Tom de Vries * gcc.dg/tree-ssa/vrp82.c: New test. diff --git a/gcc/testsuite/gfortran.dg/namelist_75.f90 b/gcc/testsuite/gfortran.dg/namelist_75.f90 new file mode 100644 index 000000000000..c88da65d6b2c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_75.f90 @@ -0,0 +1,10 @@ +! { dg-do compile } +! +! Tests a write-after-free memory error fix in gfc_undo_symbols + +program test_nml + + namelist /foo/ bar, baz + namelist /foo/ wrong, , ! { dg-error "Syntax error in NAMELIST" } + +end program test_nml -- 2.47.2