diff options
author | Tobias Burnus <burnus@net-b.de> | 2012-01-25 23:21:14 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2012-01-25 23:21:14 +0100 |
commit | 5cfa7039f35da1d11e0921da5268e185b11e63e5 (patch) | |
tree | 74c9a8b333acab6c6995c5282d6d7b4604251576 /gcc | |
parent | af92e385667da3fc91ac7f9f0867a56c111110b8 (diff) | |
download | gcc-5cfa7039f35da1d11e0921da5268e185b11e63e5.zip gcc-5cfa7039f35da1d11e0921da5268e185b11e63e5.tar.gz gcc-5cfa7039f35da1d11e0921da5268e185b11e63e5.tar.bz2 |
re PR fortran/51995 ([OOP] Polymorphic class fails at runtime)
2012-01-25 Tobias Burnus <burnus@net-b.de>
PR fortran/51995
* class.c (gfc_build_class_symbol): Fix invalid freeing
issue with fclass->f2k_derived.
From-SVN: r183541
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/class.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index b6adf23..1e0fa2f 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,6 +1,12 @@ 2012-01-25 Tobias Burnus <burnus@net-b.de> PR fortran/51995 + * class.c (gfc_build_class_symbol): Fix invalid freeing + issue with fclass->f2k_derived. + +2012-01-25 Tobias Burnus <burnus@net-b.de> + + PR fortran/51995 * class.c (gfc_build_class_symbol): Ensure that fclass->f2k_derived is set. diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c index 92cfef7..52c5a61 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. */ |