]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/51995 ([OOP] Polymorphic class fails at runtime)
authorTobias Burnus <burnus@net-b.de>
Wed, 25 Jan 2012 22:21:14 +0000 (23:21 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Wed, 25 Jan 2012 22:21:14 +0000 (23:21 +0100)
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

gcc/fortran/ChangeLog
gcc/fortran/class.c

index b6adf2382326982f434dbaf046fb6c545923c945..1e0fa2fa12a629c0f71143ce779e7fda9d82e6d1 100644 (file)
@@ -1,3 +1,9 @@
+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
index 92cfef76d6cd4f0e0179cb6ddddca34510d18c4d..52c5a61047ffeebb3e2b0f8bff81f50233cd622f 100644 (file)
@@ -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.  */