aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2013-04-01 17:11:01 +0200
committerJanus Weil <janus@gcc.gnu.org>2013-04-01 17:11:01 +0200
commitc03e6b5279af591a5d4307212c1d1983515f3588 (patch)
tree114a4fb74107b03a1e46eef2f68c14b30ce7aae9 /gcc/fortran
parent5717a8d48e4d4e28d22b4a69b7f86965cc2cc5c2 (diff)
downloadgcc-c03e6b5279af591a5d4307212c1d1983515f3588.zip
gcc-c03e6b5279af591a5d4307212c1d1983515f3588.tar.gz
gcc-c03e6b5279af591a5d4307212c1d1983515f3588.tar.bz2
re PR fortran/56500 ([OOP] "IMPLICIT CLASS(...)" wrongly rejected)
2013-04-01 Janus Weil <janus@gcc.gnu.org> PR fortran/56500 * symbol.c (gfc_set_default_type): Build class container for IMPLICIT CLASS. 2013-04-01 Janus Weil <janus@gcc.gnu.org> PR fortran/56500 * gfortran.dg/implicit_class_1.f90: New. From-SVN: r197306
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/symbol.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 92a5f00..7f9a1a5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2013-04-01 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/56500
+ * symbol.c (gfc_set_default_type): Build class container for
+ IMPLICIT CLASS.
+
2013-03-31 Tobias Burnus <burnus@net-b.de>
* class.c (finalization_scalarizer, finalizer_insert_packed_call,
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index ec64231..6fc5812 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -261,6 +261,10 @@ gfc_set_default_type (gfc_symbol *sym, int error_flag, gfc_namespace *ns)
if (ts->type == BT_CHARACTER && ts->u.cl)
sym->ts.u.cl = gfc_new_charlen (sym->ns, ts->u.cl);
+ else if (ts->type == BT_CLASS
+ && gfc_build_class_symbol (&sym->ts, &sym->attr,
+ &sym->as, false) == FAILURE)
+ return FAILURE;
if (sym->attr.is_bind_c == 1 && gfc_option.warn_c_binding_type)
{