diff options
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. */ |