]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/51550 (ICE in gfc_get_derived_type, at fortran/trans-types.c:2401)
authorTobias Burnus <burnus@net-b.de>
Thu, 15 Dec 2011 15:25:32 +0000 (16:25 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Thu, 15 Dec 2011 15:25:32 +0000 (16:25 +0100)
2011-12-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51550
        PR fortran/47545
        PR fortran/49050
        PR fortran/51075
        * resolve.c (resolve_fl_derived0): Print not-implemented error
        for deferred-length character components.

From-SVN: r182373

gcc/fortran/ChangeLog
gcc/fortran/resolve.c

index 313336c48997dd206dce3a3894bd393aa3f0a551..c054e70b9e445fe8fe64890acc57a94252d526f7 100644 (file)
@@ -1,3 +1,12 @@
+2011-12-15  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/51550
+       PR fortran/47545
+       PR fortran/49050
+       PR fortran/51075
+       * resolve.c (resolve_fl_derived0): Print not-implemented error
+       for deferred-length character components.
+
 2011-12-11  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/50923
index aed4625980e91cd1afbc805642df4252e71b8e47..7414db0c5d5bf4854bfc03058cb91e699bd03281 100644 (file)
@@ -11397,6 +11397,14 @@ resolve_fl_derived0 (gfc_symbol *sym)
 
   for (c = sym->components; c != NULL; c = c->next)
     {
+      /* See PRs 51550, 47545, 48654, 49050, 51075 - and 45170.  */
+      if (c->ts.type == BT_CHARACTER && c->ts.deferred)
+       {
+         gfc_error ("Deferred-length character component '%s' at %L is not "
+                    "yet supported", c->name, &c->loc);
+         return FAILURE;
+       }
+
       /* F2008, C442.  */
       if (c->attr.codimension /* FIXME: c->as check due to PR 43412.  */
          && (!c->attr.allocatable || (c->as && c->as->type != AS_DEFERRED)))