From 5cfa7039f35da1d11e0921da5268e185b11e63e5 Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Wed, 25 Jan 2012 23:21:14 +0100 Subject: [PATCH] re PR fortran/51995 ([OOP] Polymorphic class fails at runtime) 2012-01-25 Tobias Burnus PR fortran/51995 * class.c (gfc_build_class_symbol): Fix invalid freeing issue with fclass->f2k_derived. From-SVN: r183541 --- gcc/fortran/ChangeLog | 6 ++++++ gcc/fortran/class.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b6adf238232..1e0fa2fa12a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2012-01-25 Tobias Burnus + + PR fortran/51995 + * class.c (gfc_build_class_symbol): Fix invalid freeing + issue with fclass->f2k_derived. + 2012-01-25 Tobias Burnus PR fortran/51995 diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 92cfef76d6c..52c5a61047f 100644 --- a/gcc/fortran/class.c +++ b/gcc/fortran/class.c @@ -422,7 +422,7 @@ gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr, c->attr.pointer = 1; } else if (!fclass->f2k_derived) - fclass->f2k_derived = fclass->components->ts.u.derived->f2k_derived; + fclass->f2k_derived = gfc_get_namespace (NULL, 0); /* Since the extension field is 8 bit wide, we can only have up to 255 extension levels. */ -- 2.30.2