]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/34186 (dump-parse-tree: ICE for ts->cl->length, if ts->cl == NULL)
authorTobias Burnus <burnus@net-b.de>
Fri, 30 Nov 2007 09:31:56 +0000 (10:31 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 30 Nov 2007 09:31:56 +0000 (10:31 +0100)
2007-11-30  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34186
        * symbol.c (generate_isocbinding_symbol): Set string length.
        * dump-parse-tree.c (gfc_show_attr): Show BIND(C) attribute.
        * misc.c (gfc_basic_typename): Handle BT_VOID.

From-SVN: r130534

gcc/fortran/ChangeLog
gcc/fortran/dump-parse-tree.c
gcc/fortran/misc.c
gcc/fortran/symbol.c

index 6aa5a35f779bc4fe93ad07c390d09d15b839045f..6f23f68503c04df4640497476bbda9a27d2c3a1f 100644 (file)
@@ -1,3 +1,10 @@
+2007-11-30  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/34186
+       * symbol.c (generate_isocbinding_symbol): Set string length.
+       * dump-parse-tree.c (gfc_show_attr): Show BIND(C) attribute.
+       * misc.c (gfc_basic_typename): Handle BT_VOID.
+
 2007-11-29  Steven G. Kargl  <kargls@comcast.net>
 
        PR fortran/34230
index ce46e3513f780207a7f60ad9066e070d7453caad..e1e463f7fcd9069b69079240bb01f84edb4eee3a 100644 (file)
@@ -582,6 +582,8 @@ gfc_show_attr (symbol_attribute *attr)
     gfc_status (" RESULT");
   if (attr->entry)
     gfc_status (" ENTRY");
+  if (attr->is_bind_c)
+    gfc_status (" BIND(C)");
 
   if (attr->data)
     gfc_status (" DATA");
index 85f982dca6057a9f5f9cfa2584681aa36540962a..4bc5c43220761500aaadaa5ca014fc9fb63c14e8 100644 (file)
@@ -139,6 +139,9 @@ gfc_basic_typename (bt type)
     case BT_PROCEDURE:
       p = "PROCEDURE";
       break;
+    case BT_VOID:
+      p = "VOID";
+      break;
     case BT_UNKNOWN:
       p = "UNKNOWN";
       break;
index 8ef2b1d22a2879227205cf2f6d825e0d43ce44ed..a2bb43fecab311574cf3429a61ae8d783548e5f3 100644 (file)
@@ -3810,6 +3810,8 @@ generate_isocbinding_symbol (const char *mod_name, iso_c_binding_symbol s,
        tmp_sym->value->value.character.string[0]
          = (char) c_interop_kinds_table[s].value;
        tmp_sym->value->value.character.string[1] = '\0';
+       tmp_sym->value->ts.cl = gfc_get_charlen ();
+       tmp_sym->value->ts.cl->length = gfc_int_expr (1);
 
        /* May not need this in both attr and ts, but do need in
           attr for writing module file.  */