aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-01-25 18:34:39 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-01-25 18:34:39 +0100
commitf5a5c890825b2792696370183132cfba6727f1c0 (patch)
tree57df87f21f14e09a462a4846106036f7f01dadea /gcc/fortran
parentb3310d490144dd291d0e26279e5bf70772ea2da9 (diff)
downloadgcc-f5a5c890825b2792696370183132cfba6727f1c0.zip
gcc-f5a5c890825b2792696370183132cfba6727f1c0.tar.gz
gcc-f5a5c890825b2792696370183132cfba6727f1c0.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): Ensure that fclass->f2k_derived is set. 2012-01-25 Tobias Burnus <burnus@net-b.de> PR fortran/51995 * gfortran.dg/typebound_proc_25.f90: New. From-SVN: r183528
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog8
-rw-r--r--gcc/fortran/class.c2
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 70bd5ee..b6adf23 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,4 +1,10 @@
-2012-01-24 Tobias Burnus <burnus@net-b.de>
+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.
+
+2012-01-25 Tobias Burnus <burnus@net-b.de>
PR fortran/51966
* resolve.c (resolve_structure_cons): Only create an
diff --git a/gcc/fortran/class.c b/gcc/fortran/class.c
index 5e5de14..92cfef7 100644
--- a/gcc/fortran/class.c
+++ b/gcc/fortran/class.c
@@ -421,6 +421,8 @@ gfc_build_class_symbol (gfc_typespec *ts, symbol_attribute *attr,
c->attr.access = ACCESS_PRIVATE;
c->attr.pointer = 1;
}
+ else if (!fclass->f2k_derived)
+ fclass->f2k_derived = fclass->components->ts.u.derived->f2k_derived;
/* Since the extension field is 8 bit wide, we can only have
up to 255 extension levels. */