aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2007-11-30 10:31:56 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2007-11-30 10:31:56 +0100
commite6ef7325b82cf4fd0fd431deada1b37e29542230 (patch)
treeff3798fc5a704430ba9eb2aed7a0a828e27a0e6c /gcc
parent89ab8ba092a961625a2b636d808db5af3f08f9cd (diff)
downloadgcc-e6ef7325b82cf4fd0fd431deada1b37e29542230.zip
gcc-e6ef7325b82cf4fd0fd431deada1b37e29542230.tar.gz
gcc-e6ef7325b82cf4fd0fd431deada1b37e29542230.tar.bz2
re PR fortran/34186 (dump-parse-tree: ICE for ts->cl->length, if ts->cl == NULL)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/dump-parse-tree.c2
-rw-r--r--gcc/fortran/misc.c3
-rw-r--r--gcc/fortran/symbol.c2
4 files changed, 14 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 6aa5a35..6f23f68 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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
diff --git a/gcc/fortran/dump-parse-tree.c b/gcc/fortran/dump-parse-tree.c
index ce46e35..e1e463f7 100644
--- a/gcc/fortran/dump-parse-tree.c
+++ b/gcc/fortran/dump-parse-tree.c
@@ -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");
diff --git a/gcc/fortran/misc.c b/gcc/fortran/misc.c
index 85f982d..4bc5c43 100644
--- a/gcc/fortran/misc.c
+++ b/gcc/fortran/misc.c
@@ -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;
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index 8ef2b1d..a2bb43f 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -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. */